lib: launch: add terminating null ptr to environ array
This commit is contained in:
@@ -70,15 +70,14 @@ static virt_addr_t write_bootstrap_data(
|
||||
bs->bs_argv = (const char **)remote_argv;
|
||||
}
|
||||
|
||||
if (bs->bs_envc > 0) {
|
||||
virt_addr_t remote_envp;
|
||||
envp = stack_writer_put(
|
||||
stack,
|
||||
NULL,
|
||||
bs->bs_envc * sizeof(char *),
|
||||
&remote_envp);
|
||||
bs->bs_envp = (const char **)remote_envp;
|
||||
}
|
||||
/* envc+1 so there is space for a null terminator */
|
||||
virt_addr_t remote_envp;
|
||||
envp = stack_writer_put(
|
||||
stack,
|
||||
NULL,
|
||||
(bs->bs_envc + 1) * sizeof(char *),
|
||||
&remote_envp);
|
||||
bs->bs_envp = (const char **)remote_envp;
|
||||
|
||||
size_t i = 0, j = 0;
|
||||
if (interpreter) {
|
||||
@@ -95,11 +94,12 @@ static virt_addr_t write_bootstrap_data(
|
||||
argv[i] = (const char *)arg_ptr;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < bs->bs_envc; i++) {
|
||||
virt_addr_t env_ptr;
|
||||
virt_addr_t env_ptr;
|
||||
for (i = 0; i < bs->bs_envc; i++) {
|
||||
stack_writer_put_string(stack, params->p_envp[i], &env_ptr);
|
||||
envp[i] = (const char *)env_ptr;
|
||||
}
|
||||
envp[i] = NULL;
|
||||
|
||||
return bs_remote;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user