lib: launch: add terminating null ptr to environ array

This commit is contained in:
2026-03-22 19:07:07 +00:00
parent 9f4c4cbc9d
commit a535c588f1

View File

@@ -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;
}