From bb59e23f2e84a3fdeddbde9a02c75071753cd34e Mon Sep 17 00:00:00 2001 From: XXIV <13811862+thechampagne@users.noreply.github.com> Date: Mon, 25 Sep 2023 21:40:57 +0300 Subject: [PATCH] fix memory leak (#3512) --- pkg/proc/native/proc_darwin.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/proc/native/proc_darwin.go b/pkg/proc/native/proc_darwin.go index 8182eb23..6304afb3 100644 --- a/pkg/proc/native/proc_darwin.go +++ b/pkg/proc/native/proc_darwin.go @@ -61,6 +61,7 @@ func Launch(cmd []string, wd string, flags proc.LaunchFlags, _ []string, _ strin } argv0 := C.CString(argv0Go) + defer C.free(unsafe.Pointer(argv0)) argvSlice := make([]*C.char, 0, len(cmd)+1) for _, arg := range cmd { argvSlice = append(argvSlice, C.CString(arg)) @@ -76,8 +77,10 @@ func Launch(cmd []string, wd string, flags proc.LaunchFlags, _ []string, _ strin }() var pid int dbp.execPtraceFunc(func() { + wd := C.CString(wd) + defer C.free(unsafe.Pointer(wd)) ret := C.fork_exec(argv0, &argvSlice[0], C.int(len(argvSlice)), - C.CString(wd), + wd, &dbp.os.task, &dbp.os.portSet, &dbp.os.exceptionPort, &dbp.os.notificationPort) pid = int(ret)