diff options
Diffstat (limited to 'winsup/cygwin/spawn.cc')
-rw-r--r-- | winsup/cygwin/spawn.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index 928499614..fdbab76aa 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -281,12 +281,19 @@ spawn_guts (const char *prog_arg, const char *const *argv, if (prog_arg == NULL) { syscall_printf ("prog_arg is NULL"); - set_errno (EINVAL); + set_errno (EFAULT); /* As on Linux. */ + return -1; + } + if (!prog_arg[0]) + { + syscall_printf ("prog_arg is empty"); + set_errno (ENOENT); /* Per POSIX */ return -1; } syscall_printf ("spawn_guts (%d, %.9500s)", mode, prog_arg); + /* FIXME: This is no error condition on Linux. */ if (argv == NULL) { syscall_printf ("argv is NULL"); |