The branch main has been updated by kevans:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=fb37e38fbe99039a479520b4b596f4bfc04e2a88

commit fb37e38fbe99039a479520b4b596f4bfc04e2a88
Author:     Kyle Evans <kev...@freebsd.org>
AuthorDate: 2025-08-30 22:01:27 +0000
Commit:     Kyle Evans <kev...@freebsd.org>
CommitDate: 2025-08-30 22:02:35 +0000

    Revert "patch: fix pch_context() for unified diffs with no leading context"
    
    This reverts commit f97b6a8f84b3ed209c2aea0958a7b889d0bf27ed, as it
    turns out our fuzz implementation is just too naive.  We can have more
    leading context than trailing context and vice-versa, so we can't really
    assume they're the same.
    
    Restore the previous bug and we can work on it post-branch.
    
    Reported by:    cy
---
 usr.bin/patch/pch.c                       |  2 +-
 usr.bin/patch/tests/unified_patch_test.sh | 21 ---------------------
 2 files changed, 1 insertion(+), 22 deletions(-)

diff --git a/usr.bin/patch/pch.c b/usr.bin/patch/pch.c
index 9bc4599026ae..71f73125a8cb 100644
--- a/usr.bin/patch/pch.c
+++ b/usr.bin/patch/pch.c
@@ -1054,7 +1054,7 @@ hunk_done:
                                p_end = fillnew;
                                malformed();
                        }
-                       if (ch != ' ' && context >= 0) {
+                       if (ch != ' ' && context > 0) {
                                if (context < p_context)
                                        p_context = context;
                                context = -1000;
diff --git a/usr.bin/patch/tests/unified_patch_test.sh 
b/usr.bin/patch/tests/unified_patch_test.sh
index a4b46ef34221..a91332908773 100755
--- a/usr.bin/patch/tests/unified_patch_test.sh
+++ b/usr.bin/patch/tests/unified_patch_test.sh
@@ -25,26 +25,6 @@
 # SUCH DAMAGE.
 #
 
-atf_test_case badfuzz
-badfuzz_head()
-{
-       atf_set "descr" "Test for patch(1) erroneously fuzzing away action 
lines"
-}
-badfuzz_body()
-{
-       # PR 250511 demonstrates a scenario where patch(1) will happily apply a
-       # patch into the wrong location if we have some lines that are still
-       # similar in the trailing context.  In the following example, it would
-       # actually replace the underscore before the second series of B\nC\nO
-       # with "Z", when the patch should have been rejected instead.
-       printf "A\nB\nC\nO\n_\nB\nC\nO\n" > file.orig
-       printf "Z\nB\nC\nO\n_\nB\nC\nO\n" > file
-       printf "OK\nDIFF1\nDIFF2\n\n_\nB\nC\nO\n" > file.newer
-
-       atf_check -s not-exit:0 -o save:file.patch diff -u3 file.orig file
-       atf_check -s not-exit:0 -o not-empty patch file.newer file.patch
-}
-
 atf_test_case basic
 basic_body()
 {
@@ -198,7 +178,6 @@ EOF
 
 atf_init_test_cases()
 {
-       atf_add_test_case badfuzz
        atf_add_test_case basic
        atf_add_test_case limited_ctx
        atf_add_test_case file_creation

Reply via email to