From: Paul Smith Date: Sun, 18 Dec 2016 15:22:43 +0000 (-0500) Subject: [SV 49116] Check potential null pointer dereference. X-Git-Tag: 4.2.90~112 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d7c17c5a9bc5437968eeeb3a48dd97cb022f264;p=thirdparty%2Fmake.git [SV 49116] Check potential null pointer dereference. * w32/subproc/sub_proc.c (make_command_line): Simplify cygwin shell check for correctness. --- diff --git a/w32/subproc/sub_proc.c b/w32/subproc/sub_proc.c index af15dbc6..69b3ae13 100644 --- a/w32/subproc/sub_proc.c +++ b/w32/subproc/sub_proc.c @@ -1195,7 +1195,7 @@ process_cleanup( * * Returns: the buffer or NULL for failure * Shell case: sh_name a:/full/path/to/script argv[1] argv[2] ... - * Otherwise: argv[0] argv[1] argv[2] ... + * Otherwise: argv[0] argv[1] argv[2] ... * * Notes/Dependencies: * CreateProcess does not take an argv, so this command creates a @@ -1212,15 +1212,15 @@ make_command_line( char *shell_name, char *full_exec_path, char **argv) unsigned int bytes_required = 0; char* command_line; char* command_line_i; - int cygwin_mode = 0; /* HAVE_CYGWIN_SHELL */ int have_sh = 0; /* HAVE_CYGWIN_SHELL */ + int cygwin_mode = 0; /* HAVE_CYGWIN_SHELL */ #ifdef HAVE_CYGWIN_SHELL - have_sh = (shell_name != NULL || strstr(full_exec_path, "sh.exe")); cygwin_mode = 1; #endif if (shell_name && full_exec_path) { + have_sh = cygwin_mode && strstr(full_exec_path, "sh.exe"); bytes_required = strlen(shell_name) + 1 + strlen(full_exec_path); /*