diff options
author | Armin Rigo <arigo@tunes.org> | 2004-09-27 19:54:33 (GMT) |
---|---|---|
committer | Armin Rigo <arigo@tunes.org> | 2004-09-27 19:54:33 (GMT) |
commit | b6aa856f258d118b0605a60874f33c398dee780f (patch) | |
tree | 98c3f43670ed4158fe4323849c036aa860ad3e39 | |
parent | 9f904398179bcbab4bf21b2500aa14aec01fbdb3 (diff) | |
download | cpython-b6aa856f258d118b0605a60874f33c398dee780f.zip cpython-b6aa856f258d118b0605a60874f33c398dee780f.tar.gz cpython-b6aa856f258d118b0605a60874f33c398dee780f.tar.bz2 |
Patch #1009075, bug #952953: allow execve with empty 2nd argument
-rw-r--r-- | Doc/lib/libos.tex | 4 | ||||
-rw-r--r-- | Modules/posixmodule.c | 12 |
2 files changed, 2 insertions, 14 deletions
diff --git a/Doc/lib/libos.tex b/Doc/lib/libos.tex index 88e6402..510da17 100644 --- a/Doc/lib/libos.tex +++ b/Doc/lib/libos.tex @@ -1226,8 +1226,8 @@ the individual parameters simply become additional parameters to the \function{execl*()} functions. The \character{v} variants are good when the number of parameters is variable, with the arguments being passed in a list or tuple as the \var{args} parameter. In either -case, the arguments to the child process must start with the name of -the command being run. +case, the arguments to the child process should start with the name of +the command being run, but this is not enforced. The variants which include a \character{p} near the end (\function{execlp()}, \function{execlpe()}, \function{execvp()}, diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 306bce5..764fa4c 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -2171,12 +2171,6 @@ posix_execv(PyObject *self, PyObject *args) return NULL; } - if (argc == 0) { - PyErr_SetString(PyExc_ValueError, "execv() arg 2 must not be empty"); - PyMem_Free(path); - return NULL; - } - argvlist = PyMem_NEW(char *, argc+1); if (argvlist == NULL) { PyMem_Free(path); @@ -2253,12 +2247,6 @@ posix_execve(PyObject *self, PyObject *args) goto fail_0; } - if (argc == 0) { - PyErr_SetString(PyExc_ValueError, - "execve() arg 2 must not be empty"); - goto fail_0; - } - argvlist = PyMem_NEW(char *, argc+1); if (argvlist == NULL) { PyErr_NoMemory(); |