26 lines
1.1 KiB
Diff
26 lines
1.1 KiB
Diff
diff -urpN busybox-1.15.2/findutils/grep.c busybox-1.15.2-grep/findutils/grep.c
|
|
--- busybox-1.15.2/findutils/grep.c 2009-09-26 15:14:57.000000000 +0200
|
|
+++ busybox-1.15.2-grep/findutils/grep.c 2009-12-04 02:46:43.000000000 +0100
|
|
@@ -377,6 +377,8 @@ static int grep_file(FILE *file)
|
|
print_line(line + gl->matched_range.rm_so,
|
|
end - gl->matched_range.rm_so,
|
|
linenum, ':');
|
|
+ if (old == '\0')
|
|
+ break;
|
|
line[end] = old;
|
|
#if !ENABLE_EXTRA_COMPAT
|
|
if (regexec(&gl->compiled_regex, line + end,
|
|
diff -urpN busybox-1.15.2/testsuite/grep.tests busybox-1.15.2-grep/testsuite/grep.tests
|
|
--- busybox-1.15.2/testsuite/grep.tests 2009-09-26 15:14:57.000000000 +0200
|
|
+++ busybox-1.15.2-grep/testsuite/grep.tests 2009-12-04 02:46:43.000000000 +0100
|
|
@@ -90,4 +90,9 @@ testing "grep -E -o prints all matches"
|
|
"00:19:3E:00:AA:5E\n00:1D:60:3D:3A:FB\n00:22:43:49:FB:AA\n" \
|
|
"" "00:19:3E:00:AA:5E 00:1D:60:3D:3A:FB 00:22:43:49:FB:AA\n"
|
|
|
|
+testing "grep -o does not loop forever" \
|
|
+ 'grep -o "[^/]*$"' \
|
|
+ "test\n" \
|
|
+ "" "/var/test\n"
|
|
+
|
|
exit $FAILCOUNT
|