b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | From 9bf998b5fcbcde1dea0e472dc1538abb97e9012e 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: [PATCH] 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 | --- a/src/pch.c |
| 14 | +++ b/src/pch.c |
| 15 | @@ -974,7 +974,8 @@ intuit_diff_type (bool need_header, mode |
| 16 | if ((pch_rename () || pch_copy ()) |
| 17 | && ! inname |
| 18 | && ! ((i == OLD || i == NEW) && |
| 19 | - p_name[! reverse] && |
| 20 | + p_name[reverse] && p_name[! reverse] && |
| 21 | + name_is_valid (p_name[reverse]) && |
| 22 | name_is_valid (p_name[! reverse]))) |
| 23 | { |
| 24 | say ("Cannot %s file without two valid file names\n", pch_rename () ? "rename" : "copy"); |