In file libbb/get_line_from_file.c, when we read a complete line,
the bb_get_chunk_from_file function meets the '\0' or '\n', it would
break.

Normally we treate the '\n' as the end of a line, so when we read a
whole line, we would break just in case of '\n', the case of '\0',
we can continue and do nothing.

Signed-off-by: Dengke Du <[email protected]>
---
 libbb/get_line_from_file.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libbb/get_line_from_file.c b/libbb/get_line_from_file.c
index a98dd35..86804c0 100644
--- a/libbb/get_line_from_file.c
+++ b/libbb/get_line_from_file.c
@@ -21,9 +21,11 @@ char* FAST_FUNC bb_get_chunk_from_file(FILE *file, int *end)
                /* grow the line buffer as necessary */
                if (!(idx & 0xff))
                        linebuf = xrealloc(linebuf, idx + 0x100);
+               
+               /* if meets the '\0', do nothing and continue */
+               if ((char)ch == '\0')
+                       continue;
                linebuf[idx++] = (char) ch;
-               if (ch == '\0')
-                       break;
                if (end && ch == '\n')
                        break;
        }
-- 
2.8.1

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to