Fix using NULL environment in vexecle(3).

This commit is contained in:
Jonas 'Sortie' Termansen 2013-10-16 00:28:33 +02:00
parent 63ad7d64dd
commit 6f6d775d47
1 changed files with 1 additions and 2 deletions

View File

@ -33,14 +33,13 @@ extern "C" int vexecle(const char* pathname, va_list args)
size_t numargs = 0;
while ( va_arg(iter, const char*) ) { numargs++; }
va_end(iter);
numargs--; // envp
char** argv = (char**) malloc(sizeof(char*) * (numargs+1));
if ( !argv ) { return -1; }
for ( size_t i = 0; i < numargs; i++ )
{
argv[i] = (char*) va_arg(args, const char*);
}
argv[numargs] = NULL;
argv[numargs] = (char*) va_arg(args, char* const*) /* NULL */;
char* const* envp = va_arg(args, char* const*);
int result = execve(pathname, argv, envp);
free(argv);