mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Fix using NULL environment in vexecle(3).
This commit is contained in:
parent
63ad7d64dd
commit
6f6d775d47
1 changed files with 1 additions and 2 deletions
|
@ -33,14 +33,13 @@ extern "C" int vexecle(const char* pathname, va_list args)
|
||||||
size_t numargs = 0;
|
size_t numargs = 0;
|
||||||
while ( va_arg(iter, const char*) ) { numargs++; }
|
while ( va_arg(iter, const char*) ) { numargs++; }
|
||||||
va_end(iter);
|
va_end(iter);
|
||||||
numargs--; // envp
|
|
||||||
char** argv = (char**) malloc(sizeof(char*) * (numargs+1));
|
char** argv = (char**) malloc(sizeof(char*) * (numargs+1));
|
||||||
if ( !argv ) { return -1; }
|
if ( !argv ) { return -1; }
|
||||||
for ( size_t i = 0; i < numargs; i++ )
|
for ( size_t i = 0; i < numargs; i++ )
|
||||||
{
|
{
|
||||||
argv[i] = (char*) va_arg(args, const char*);
|
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*);
|
char* const* envp = va_arg(args, char* const*);
|
||||||
int result = execve(pathname, argv, envp);
|
int result = execve(pathname, argv, envp);
|
||||||
free(argv);
|
free(argv);
|
||||||
|
|
Loading…
Add table
Reference in a new issue