+2008-06-10  Miklos Szeredi <miklos@szeredi.hu>
+
+       * Fix theoretical infinite loops in libfuse.  Reported by Szabolcs
+       Szakacsits
+
 2008-05-23  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fix mounting over symlink.  Reported by Szabolcs Szakacsits
 
                unsigned newbufsize = *bufsize;
                char *newbuf;
 
-               while (newbufsize < pathlen + len + 1)
-                       newbufsize *= 2;
+               while (newbufsize < pathlen + len + 1) {
+                       if (newbufsize >= 0x80000000)
+                               newbufsize = 0xffffffff;
+                       else
+                               newbufsize *= 2;
+               }
 
                newbuf = realloc(*buf, newbufsize);
                if (newbuf == NULL)
                unsigned newsize = dh->size;
                if (!newsize)
                        newsize = 1024;
-               while (newsize < minsize)
-                       newsize *= 2;
+               while (newsize < minsize) {
+                       if (newsize >= 0x80000000)
+                               newsize = 0xffffffff;
+                       else
+                               newsize *= 2;
+               }
 
                newptr = (char *) realloc(dh->contents, newsize);
                if (!newptr) {