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
This commit is contained in:
parent
81dbfd7402
commit
a32dac0e8d
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user