From: Eli Zaretskii Date: Sat, 28 Feb 2015 12:34:51 +0000 (+0200) Subject: [SV 44348] Fix handling of shell widlcards on MS-Windows. X-Git-Tag: 4.1.90~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a80a8b8a10a8b3d46046d955986f484527c81c0b;p=thirdparty%2Fmake.git [SV 44348] Fix handling of shell widlcards on MS-Windows. * job.c (construct_command_argv_internal): If shell wildcard characters are found inside a string quoted with "..", give up the fast route and go through the shell. Fixes Savannah bug #44348. --- diff --git a/job.c b/job.c index 6616325b..3d9aec5a 100644 --- a/job.c +++ b/job.c @@ -2890,6 +2890,10 @@ construct_command_argv_internal (char *line, char **restp, const char *shell, else if (instring == '"' && strchr ("\\$`", *p) != 0 && unixy_shell) goto slow; #ifdef WINDOWS32 + /* Quoted wildcard characters must be passed quoted to the + command, so give up the fast route. */ + else if (instring == '"' && strchr ("*?", *p) != 0 && !unixy_shell) + goto slow; else if (instring == '"' && strncmp (p, "\\\"", 2) == 0) *ap++ = *++p; #endif