|
jkudrnac |
98cc7b6 |
--- gd-2.0.33/gd_gif_in.c.loop 2004-11-01 19:28:56.000000000 +0100
|
|
jkudrnac |
98cc7b6 |
+++ gd-2.0.33/gd_gif_in.c 2006-07-10 14:59:42.000000000 +0200
|
|
jkudrnac |
98cc7b6 |
@@ -418,16 +418,17 @@
|
|
jkudrnac |
98cc7b6 |
return firstcode;
|
|
jkudrnac |
98cc7b6 |
} else if (code == end_code) {
|
|
jkudrnac |
98cc7b6 |
int count;
|
|
jkudrnac |
98cc7b6 |
+ int max_count = 1024;
|
|
jkudrnac |
98cc7b6 |
unsigned char buf[260];
|
|
jkudrnac |
98cc7b6 |
|
|
jkudrnac |
98cc7b6 |
if (*ZeroDataBlockP)
|
|
jkudrnac |
98cc7b6 |
return -2;
|
|
jkudrnac |
98cc7b6 |
|
|
jkudrnac |
98cc7b6 |
- while ((count = GetDataBlock(fd, buf, ZeroDataBlockP)) > 0)
|
|
jkudrnac |
98cc7b6 |
+ while ((count = GetDataBlock(fd, buf, ZeroDataBlockP)) > 0 && --max_count >= 0 )
|
|
jkudrnac |
98cc7b6 |
;
|
|
jkudrnac |
98cc7b6 |
|
|
jkudrnac |
98cc7b6 |
- if (count != 0)
|
|
jkudrnac |
98cc7b6 |
- return -2;
|
|
jkudrnac |
98cc7b6 |
+ if (count != 0 || max_count < 0 )
|
|
jkudrnac |
98cc7b6 |
+ return -2;
|
|
jkudrnac |
98cc7b6 |
}
|
|
jkudrnac |
98cc7b6 |
|
|
jkudrnac |
98cc7b6 |
incode = code;
|