gnupatch: fix CVE-2018-6951

fixes #39045

authored by Antoine Eiche and committed by Jörg Thalheim 11fd378f 16b45ec3

+33
+28
pkgs/tools/text/gnupatch/CVE-2018-6951.patch
··· 1 + From f290f48a621867084884bfff87f8093c15195e6a Mon Sep 17 00:00:00 2001 2 + From: Andreas Gruenbacher <agruen@gnu.org> 3 + Date: Mon, 12 Feb 2018 16:48:24 +0100 4 + Subject: Fix segfault with mangled rename patch 5 + 6 + http://savannah.gnu.org/bugs/?53132 7 + * src/pch.c (intuit_diff_type): Ensure that two filenames are specified 8 + for renames and copies (fix the existing check). 9 + --- 10 + src/pch.c | 3 ++- 11 + 1 file changed, 2 insertions(+), 1 deletion(-) 12 + 13 + diff --git a/src/pch.c b/src/pch.c 14 + index ff9ed2c..bc6278c 100644 15 + --- a/src/pch.c 16 + +++ b/src/pch.c 17 + @@ -974,7 +974,8 @@ intuit_diff_type (bool need_header, mode_t *p_file_type) 18 + if ((pch_rename () || pch_copy ()) 19 + && ! inname 20 + && ! ((i == OLD || i == NEW) && 21 + - p_name[! reverse] && 22 + + p_name[reverse] && p_name[! reverse] && 23 + + name_is_valid (p_name[reverse]) && 24 + name_is_valid (p_name[! reverse]))) 25 + { 26 + say ("Cannot %s file without two valid file names\n", pch_rename () ? "rename" : "copy"); 27 + -- 28 + cgit v1.0-41-gc330
+5
pkgs/tools/text/gnupatch/default.nix
··· 11 11 sha256 = "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"; 12 12 }; 13 13 14 + patches = [ 15 + # https://git.savannah.gnu.org/cgit/patch.git/patch/?id=f290f48a621867084884bfff87f8093c15195e6a 16 + ./CVE-2018-6951.patch 17 + ]; 18 + 14 19 buildInputs = stdenv.lib.optional doCheck ed; 15 20 16 21 configureFlags = stdenv.lib.optionals (hostPlatform != buildPlatform) [