Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Libpng
提交
7a69beda
T
Third Party Libpng
项目概览
OpenHarmony
/
Third Party Libpng
11 个月 前同步成功
通知
4
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Libpng
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7a69beda
编写于
4月 18, 2013
作者:
G
Glenn Randers-Pehrson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[libpng16] in fixitxt.c define MAX_LENGTH, largest iTXT chunk that it
can handle.
上级
e4413a73
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
11 addition
and
7 deletion
+11
-7
contrib/tools/fixitxt.c
contrib/tools/fixitxt.c
+11
-7
未找到文件。
contrib/tools/fixitxt.c
浏览文件 @
7a69beda
...
@@ -25,13 +25,15 @@
...
@@ -25,13 +25,15 @@
* gcc -O -o fixitxt fixitxt.c -lz
* gcc -O -o fixitxt fixitxt.c -lz
*/
*/
#define MAX_LENGTH 500000
#define GETBREAK c=getchar(); if (c == EOF) break;
#define GETBREAK c=getchar(); if (c == EOF) break;
#include <zlib.h>
#include <zlib.h>
main
()
main
()
{
{
unsigned
int
i
;
unsigned
int
i
;
unsigned
char
buf
[
100000
];
unsigned
char
buf
[
MAX_LENGTH
];
unsigned
long
crc
;
unsigned
long
crc
;
unsigned
int
c
;
unsigned
int
c
;
...
@@ -46,13 +48,13 @@ if (c != EOF)
...
@@ -46,13 +48,13 @@ if (c != EOF)
for
(;;)
for
(;;)
{
{
/* Read the length */
/* Read the length */
unsigned
int
length
;
unsigned
long
length
;
c
=
GETBREAK
;
buf
[
0
]
=
c
;
c
=
GETBREAK
;
buf
[
0
]
=
c
;
c
=
GETBREAK
;
buf
[
1
]
=
c
;
c
=
GETBREAK
;
buf
[
1
]
=
c
;
c
=
GETBREAK
;
buf
[
2
]
=
c
;
c
=
GETBREAK
;
buf
[
2
]
=
c
;
c
=
GETBREAK
;
buf
[
3
]
=
c
;
c
=
GETBREAK
;
buf
[
3
]
=
c
;
length
=
buf
[
0
]
<<
24
|
buf
[
1
]
<<
16
|
buf
[
2
]
<<
8
|
buf
[
3
]
;
length
=
((((
unsigned
long
)
buf
[
0
]
<<
8
+
buf
[
1
]
<<
16
)
+
buf
[
2
]
<<
8
)
+
buf
[
3
])
;
/* Read the chunkname */
/* Read the chunkname */
c
=
GETBREAK
;
buf
[
4
]
=
c
;
c
=
GETBREAK
;
buf
[
4
]
=
c
;
c
=
GETBREAK
;
buf
[
5
]
=
c
;
c
=
GETBREAK
;
buf
[
5
]
=
c
;
...
@@ -63,6 +65,9 @@ for (;;)
...
@@ -63,6 +65,9 @@ for (;;)
/* The iTXt chunk type expressed as integers is (105, 84, 88, 116) */
/* The iTXt chunk type expressed as integers is (105, 84, 88, 116) */
if
(
buf
[
4
]
==
105
&&
buf
[
5
]
==
84
&&
buf
[
6
]
==
88
&&
buf
[
7
]
==
116
)
if
(
buf
[
4
]
==
105
&&
buf
[
5
]
==
84
&&
buf
[
6
]
==
88
&&
buf
[
7
]
==
116
)
{
{
if
(
length
>=
MAX_LENGTH
-
12
)
break
;
/* To do: handle this more gracefully */
/* Initialize the CRC */
/* Initialize the CRC */
crc
=
crc32
(
0
,
Z_NULL
,
0
);
crc
=
crc32
(
0
,
Z_NULL
,
0
);
...
@@ -86,6 +91,9 @@ for (;;)
...
@@ -86,6 +91,9 @@ for (;;)
length
++
;
length
++
;
if
(
length
>=
MAX_LENGTH
-
12
)
break
;
c
=
GETBREAK
;
c
=
GETBREAK
;
buf
[
length
+
11
]
=
c
;
buf
[
length
+
11
]
=
c
;
...
@@ -115,12 +123,8 @@ for (;;)
...
@@ -115,12 +123,8 @@ for (;;)
{
{
c
=
GETBREAK
;
c
=
GETBREAK
;
putchar
(
c
);
putchar
(
c
);
buf
[
i
]
=
c
;
}
}
crc
=
crc32
(
0
,
Z_NULL
,
0
);
crc
=
crc32
(
crc
,
buf
+
4
,
(
uInt
)
length
+
4
);
if
(
c
==
EOF
)
if
(
c
==
EOF
)
{
{
break
;
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录