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;