Only add command_info to garbage collector on successful return.

Otherwise it will be freed on failure.
This commit is contained in:
Todd C. Miller
2021-02-25 19:48:46 -07:00
parent 3595fd5504
commit 65b598602b

View File

@@ -606,7 +606,6 @@ sudoers_policy_store_result(bool accepted, char *argv[], char *envp[],
command_info = calloc(55, sizeof(char *));
if (command_info == NULL)
goto oom;
sudoers_gc_add(GC_VECTOR, command_info);
if (safe_cmnd != NULL) {
command_info[info_len] = sudo_new_key_val("command", safe_cmnd);
@@ -882,6 +881,9 @@ sudoers_policy_store_result(bool accepted, char *argv[], char *envp[],
*(exec_args->envp) = envp;
*(exec_args->info) = command_info;
/* Free command_info on exit. */
sudoers_gc_add(GC_VECTOR, command_info);
debug_return_bool(true);
oom: