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