summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/linux/stdlib
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-07-07 07:14:58 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-07-07 07:14:58 -0700
commit8da90498684e5dc90870601dc520d8597e09788d (patch)
tree129b97b7cace261f390863242dff3f594cba566d /newlib/libc/sys/linux/stdlib
parenta10a8241f40f24d965e6fdd866d1ee07da4cb4f0 (diff)
downloadcygnal-8da90498684e5dc90870601dc520d8597e09788d.tar.gz
cygnal-8da90498684e5dc90870601dc520d8597e09788d.tar.bz2
cygnal-8da90498684e5dc90870601dc520d8597e09788d.zip
More secure way of obtaining command interpreter.
Instead of relying on the COMSPEC environment variable, what we can do is assume that the program is called "cmd.exe", and then look for it in the directory reported by the GetSystemDirectoryA Win32 function in kernel32.dll. * winsup/cygwin/path.h (get_cmd_exe_path): New function declared. * winsup/cygwin/spawn.cc (av::setup): Use get_cmd_exe_path instead of getenv("COMSPEC"). (cmd_exe_path): New static variable. (init_cmd_exe_path): New static function. (get_cmd_exe_path): New function. * winsup/cygwin/syscalls.cc (system, getusershell, popen): Use get_cmd_exe_path instead of getenv("COMSPEC").
Diffstat (limited to 'newlib/libc/sys/linux/stdlib')
0 files changed, 0 insertions, 0 deletions