svn commit: r325365 - head/usr.bin/patch
Kyle Evans
kevans at FreeBSD.org
Fri Nov 3 17:04:32 UTC 2017
Author: kevans
Date: Fri Nov 3 17:04:30 2017
New Revision: 325365
URL: https://svnweb.freebsd.org/changeset/base/325365
Log:
patch(1): don't assume a match if we run out of context to check
Patches with very little context (-U0 and -U1) could get misapplied if
the file to be patched changes and a hunk is no longer applicable. Matching
with fuzz would be attempted and default to a match when we unexpectedly ran
out of context.
PR: 74127
Reviewed by: emaste, pfg
Approved by: emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D12631
Modified:
head/usr.bin/patch/patch.c
Modified: head/usr.bin/patch/patch.c
==============================================================================
--- head/usr.bin/patch/patch.c Fri Nov 3 15:57:27 2017 (r325364)
+++ head/usr.bin/patch/patch.c Fri Nov 3 17:04:30 2017 (r325365)
@@ -1026,6 +1026,9 @@ patch_match(LINENUM base, LINENUM offset, LINENUM fuzz
const char *plineptr;
unsigned short plinelen;
+ /* Patch does not match if we don't have anymore context to use */
+ if (pline > pat_lines)
+ return false;
for (iline = base + offset + fuzz; pline <= pat_lines; pline++, iline++) {
ilineptr = ifetch(iline, offset >= 0);
if (ilineptr == NULL)
More information about the svn-src-all
mailing list