busybox: 1.14.0 libbb fix
authorPeter Korsgaard <jacmet@sunsite.dk>
Mon, 18 May 2009 11:51:52 +0000 (13:51 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 18 May 2009 11:51:52 +0000 (13:51 +0200)
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/busybox/busybox-1.14.0-libbb.patch [new file with mode: 0644]

diff --git a/package/busybox/busybox-1.14.0-libbb.patch b/package/busybox/busybox-1.14.0-libbb.patch
new file mode 100644 (file)
index 0000000..327b4ec
--- /dev/null
@@ -0,0 +1,35 @@
+--- busybox-1.14.0/include/libbb.h     Tue Apr 14 02:50:20 2009
++++ busybox-1.14.0-libbb/include/libbb.h       Fri May 15 23:22:02 2009
+@@ -965,6 +965,12 @@
+       /* How long the longest ESC sequence we know? */
+       KEYCODE_BUFFER_SIZE = 4
+ };
++/* Note: fd may be in blocking or non-blocking mode, both make sense.
++ * For one, less uses non-blocking mode.
++ * Only the first read syscall inside read_key may block indefinitely
++ * (unless fd is in non-blocking mode),
++ * subsequent reads will time out after a few milliseconds.
++ */
+ int read_key(int fd, smalluint *nbuffered, char *buffer) FAST_FUNC;
+--- busybox-1.14.0/libbb/read.c        Tue Apr 14 01:43:00 2009
++++ busybox-1.14.0-libbb/libbb/read.c  Fri May 15 23:22:02 2009
+@@ -229,7 +229,7 @@
+               if (size > 64*1024)
+                       size = 64*1024;
+       }
+-      xrealloc(buf, total + 1);
++      buf = xrealloc(buf, total + 1);
+       buf[total] = '\0';
+       if (maxsz_p)
+@@ -273,7 +273,7 @@
+               free(buf);
+               return NULL;
+       }
+-      xrealloc(buf, size + 1);
++      buf = xrealloc(buf, size + 1);
+       buf[size] = '\0';
+       if (maxsz_p)