bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] exec: free args on failed exec


From: Grisha Levit
Subject: [PATCH] exec: free args on failed exec
Date: Fri, 31 May 2024 19:27:49 -0400

The comment describing why this wasn't done has been there since the
start of the repo's history and AFAICT it is not accurate anymore, as
shell_execve only calls realloc when it's going to longjmp rather than
return.

Fixes leak in

    bash -O execfail -c 'exec /; :'
---
 builtins/exec.def | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/builtins/exec.def b/builtins/exec.def
index 3ca7c4f8..618882c8 100644
--- a/builtins/exec.def
+++ b/builtins/exec.def
@@ -230,10 +230,6 @@ exec_builtin (WORD_LIST *list)
   exit_value = shell_execve (command, args, env);
   opt = errno;
 
-  /* We have to set this to NULL because shell_execve has called realloc()
-     to stuff more items at the front of the array, which may have caused
-     the memory to be freed by realloc().  We don't want to free it twice. */
-  args = (char **)NULL;
   if (cleanenv == 0)
     adjust_shell_level (1);
 
-- 
2.45.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]