fix memory leak (#3512)
This commit is contained in:
parent
ebc3e61367
commit
bb59e23f2e
@ -61,6 +61,7 @@ func Launch(cmd []string, wd string, flags proc.LaunchFlags, _ []string, _ strin
|
|||||||
}
|
}
|
||||||
|
|
||||||
argv0 := C.CString(argv0Go)
|
argv0 := C.CString(argv0Go)
|
||||||
|
defer C.free(unsafe.Pointer(argv0))
|
||||||
argvSlice := make([]*C.char, 0, len(cmd)+1)
|
argvSlice := make([]*C.char, 0, len(cmd)+1)
|
||||||
for _, arg := range cmd {
|
for _, arg := range cmd {
|
||||||
argvSlice = append(argvSlice, C.CString(arg))
|
argvSlice = append(argvSlice, C.CString(arg))
|
||||||
@ -76,8 +77,10 @@ func Launch(cmd []string, wd string, flags proc.LaunchFlags, _ []string, _ strin
|
|||||||
}()
|
}()
|
||||||
var pid int
|
var pid int
|
||||||
dbp.execPtraceFunc(func() {
|
dbp.execPtraceFunc(func() {
|
||||||
|
wd := C.CString(wd)
|
||||||
|
defer C.free(unsafe.Pointer(wd))
|
||||||
ret := C.fork_exec(argv0, &argvSlice[0], C.int(len(argvSlice)),
|
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.task, &dbp.os.portSet, &dbp.os.exceptionPort,
|
||||||
&dbp.os.notificationPort)
|
&dbp.os.notificationPort)
|
||||||
pid = int(ret)
|
pid = int(ret)
|
||||||
|
Loading…
Reference in New Issue
Block a user