From 572b29b874d6fb8d3be9fd1735a4613a1de6f071 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 26 Jul 2019 08:07:55 -0600 Subject: [PATCH] rktio: fix leak and bad free in `subprocess` Closes #2764 --- racket/src/rktio/rktio_process.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/racket/src/rktio/rktio_process.c b/racket/src/rktio/rktio_process.c index b9c7a46455..5820f6554c 100644 --- a/racket/src/rktio/rktio_process.c +++ b/racket/src/rktio/rktio_process.c @@ -1524,11 +1524,14 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, { int err; + char **use_env; if (!env) - env = rktio_get_environ_array(); + use_env = rktio_get_environ_array(); + else + use_env = env; - err = MSC_IZE(execve)(command, (char **)new_argv, (char **)env); + err = MSC_IZE(execve)(command, (char **)new_argv, use_env); if (err) err = errno; @@ -1547,6 +1550,8 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, default: /* parent */ + free(new_argv); + break; } #endif