summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@gnu.org>2018-02-12 16:48:24 +0100
committerAndreas Gruenbacher <agruen@gnu.org>2018-02-12 16:48:24 +0100
commitf290f48a621867084884bfff87f8093c15195e6a (patch)
tree0788f18d9d6f663bbddf2f4c881284d21170516d
parent074e2395f81d0ecaa66b71a6c228c70b49db72e5 (diff)
downloadpatch-f290f48a621867084884bfff87f8093c15195e6a.tar.gz
Fix segfault with mangled rename patch
http://savannah.gnu.org/bugs/?53132 * src/pch.c (intuit_diff_type): Ensure that two filenames are specified for renames and copies (fix the existing check).
-rw-r--r--src/pch.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/pch.c b/src/pch.c
index ff9ed2c..bc6278c 100644
--- a/src/pch.c
+++ b/src/pch.c
@@ -974,7 +974,8 @@ intuit_diff_type (bool need_header, mode_t *p_file_type)
if ((pch_rename () || pch_copy ())
&& ! inname
&& ! ((i == OLD || i == NEW) &&
- p_name[! reverse] &&
+ p_name[reverse] && p_name[! reverse] &&
+ name_is_valid (p_name[reverse]) &&
name_is_valid (p_name[! reverse])))
{
say ("Cannot %s file without two valid file names\n", pch_rename () ? "rename" : "copy");