Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
c3c52055
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c3c52055
编写于
10月 14, 2013
作者:
B
bae
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7058607: GIF parser bugs found via zzuf fuzzing
Reviewed-by: prr, vadim
上级
65201df8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
0 deletion
+43
-0
src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java
...e/classes/com/sun/imageio/plugins/gif/GIFImageReader.java
+43
-0
未找到文件。
src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java
浏览文件 @
c3c52055
...
@@ -115,6 +115,8 @@ public class GIFImageReader extends ImageReader {
...
@@ -115,6 +115,8 @@ public class GIFImageReader extends ImageReader {
// The current interlace pass, starting with 0.
// The current interlace pass, starting with 0.
int
interlacePass
=
0
;
int
interlacePass
=
0
;
private
byte
[]
fallbackColorTable
=
null
;
// End per-stream settings
// End per-stream settings
// Constants used to control interlacing.
// Constants used to control interlacing.
...
@@ -239,10 +241,22 @@ public class GIFImageReader extends ImageReader {
...
@@ -239,10 +241,22 @@ public class GIFImageReader extends ImageReader {
byte
[]
colorTable
;
byte
[]
colorTable
;
if
(
imageMetadata
.
localColorTable
!=
null
)
{
if
(
imageMetadata
.
localColorTable
!=
null
)
{
colorTable
=
imageMetadata
.
localColorTable
;
colorTable
=
imageMetadata
.
localColorTable
;
fallbackColorTable
=
imageMetadata
.
localColorTable
;
}
else
{
}
else
{
colorTable
=
streamMetadata
.
globalColorTable
;
colorTable
=
streamMetadata
.
globalColorTable
;
}
}
if
(
colorTable
==
null
)
{
if
(
fallbackColorTable
==
null
)
{
this
.
processWarningOccurred
(
"Use default color table."
);
// no color table, the spec allows to use any palette.
fallbackColorTable
=
getDefaultPalette
();
}
colorTable
=
fallbackColorTable
;
}
// Normalize color table length to 2^1, 2^2, 2^4, or 2^8
// Normalize color table length to 2^1, 2^2, 2^4, or 2^8
int
length
=
colorTable
.
length
/
3
;
int
length
=
colorTable
.
length
/
3
;
int
bits
;
int
bits
;
...
@@ -1036,5 +1050,34 @@ public class GIFImageReader extends ImageReader {
...
@@ -1036,5 +1050,34 @@ public class GIFImageReader extends ImageReader {
streamY
=
-
1
;
streamY
=
-
1
;
rowsDone
=
0
;
rowsDone
=
0
;
interlacePass
=
0
;
interlacePass
=
0
;
fallbackColorTable
=
null
;
}
private
static
byte
[]
defaultPalette
=
null
;
private
static
synchronized
byte
[]
getDefaultPalette
()
{
if
(
defaultPalette
==
null
)
{
BufferedImage
img
=
new
BufferedImage
(
1
,
1
,
BufferedImage
.
TYPE_BYTE_INDEXED
);
IndexColorModel
icm
=
(
IndexColorModel
)
img
.
getColorModel
();
final
int
size
=
icm
.
getMapSize
();
byte
[]
r
=
new
byte
[
size
];
byte
[]
g
=
new
byte
[
size
];
byte
[]
b
=
new
byte
[
size
];
icm
.
getReds
(
r
);
icm
.
getGreens
(
g
);
icm
.
getBlues
(
b
);
defaultPalette
=
new
byte
[
size
*
3
];
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
defaultPalette
[
3
*
i
+
0
]
=
r
[
i
];
defaultPalette
[
3
*
i
+
1
]
=
g
[
i
];
defaultPalette
[
3
*
i
+
2
]
=
b
[
i
];
}
}
return
defaultPalette
;
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录