Patch #1009075, bug #952953: allow execve with empty 2nd argument
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 @@
 \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 @@
 		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 @@
 		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();