forked from pool/patch
0c9f15e1a7
lines in pch_swap. This bug was causing a double free leading to a crash (boo#1080985 CVE-2018-6952). - abort-when-cleaning-up-fails.patch: Abort when cleaning up fails. This bug could cause an infinite loop when a patch wouldn't apply, leading to a segmentation fault (boo#1111572). - dont-follow-symlinks-unless-asked.patch: Don't follow symlinks unless --follow-symlinks is given. This increases the security against malicious patches (boo#1142041 CVE-2019-13636). - pass-the-correct-stat-to-backup-files.patch: Pass the correct stat to backup files. This bug would occasionally cause backup files to be missing when all hunks failed to apply (boo#1198106). OBS-URL: https://build.opensuse.org/package/show/devel:tools/patch?expand=0&rev=64
28 lines
820 B
Diff
28 lines
820 B
Diff
From: Andreas Gruenbacher <agruen@gnu.org>
|
|
Date: Fri, 17 Aug 2018 13:35:40 +0200
|
|
Subject: Fix swapping fake lines in pch_swap
|
|
Patch-mainline: Yes
|
|
Git-commit: 9c986353e420ead6e706262bf204d6e03322c300
|
|
References: boo#1080985 savannah#53133 CVE-2018-6952
|
|
|
|
* src/pch.c (pch_swap): Fix swapping p_bfake and p_efake when there is a
|
|
blank line in the middle of a context-diff hunk: that empty line stays
|
|
in the middle of the hunk and isn't swapped.
|
|
|
|
Fixes: https://savannah.gnu.org/bugs/index.php?53133
|
|
---
|
|
src/pch.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/src/pch.c
|
|
+++ b/src/pch.c
|
|
@@ -2115,7 +2115,7 @@ pch_swap (void)
|
|
}
|
|
if (p_efake >= 0) { /* fix non-freeable ptr range */
|
|
if (p_efake <= i)
|
|
- n = p_end - i + 1;
|
|
+ n = p_end - p_ptrn_lines;
|
|
else
|
|
n = -i;
|
|
p_efake += n;
|