Module Name: src Committed By: riastradh Date: Fri Jul 1 01:05:31 UTC 2022
Modified Files: src/sys/kern: kern_exec.c Log Message: posix_spawn(2): Plug leak in proc_alloc error branch. To generate a diff of this commit: cvs rdiff -u -r1.517 -r1.518 src/sys/kern/kern_exec.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_exec.c diff -u src/sys/kern/kern_exec.c:1.517 src/sys/kern/kern_exec.c:1.518 --- src/sys/kern/kern_exec.c:1.517 Sat Apr 9 23:38:33 2022 +++ src/sys/kern/kern_exec.c Fri Jul 1 01:05:31 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_exec.c,v 1.517 2022/04/09 23:38:33 riastradh Exp $ */ +/* $NetBSD: kern_exec.c,v 1.518 2022/07/01 01:05:31 riastradh Exp $ */ /*- * Copyright (c) 2008, 2019, 2020 The NetBSD Foundation, Inc. @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.517 2022/04/09 23:38:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.518 2022/07/01 01:05:31 riastradh Exp $"); #include "opt_exec.h" #include "opt_execfmt.h" @@ -2568,7 +2568,7 @@ do_posix_spawn(struct lwp *l1, pid_t *pi struct lwp *l2; int error; struct spawn_exec_data *spawn_data; - vaddr_t uaddr; + vaddr_t uaddr = 0; pid_t pid; bool have_exec_lock = false; @@ -2852,6 +2852,8 @@ do_posix_spawn(struct lwp *l1, pid_t *pi } mutex_exit(&spawn_data->sed_mtx_child); spawn_exec_data_release(spawn_data); + if (uaddr != 0) + uvm_uarea_free(uaddr); return error; }