fix too many open files

This commit is contained in:
criyle 2019-08-07 22:08:59 -07:00
parent d9dc7a01ab
commit cde21dec31
2 changed files with 10 additions and 0 deletions

View File

@ -71,6 +71,8 @@ func handleExecve(s *unixsocket.Socket, cmd *Cmd, msg *unixsocket.Msg) error {
if msg != nil {
files = intSliceToUintptr(msg.Fds)
}
// release files after execve
defer closeFds(msg.Fds)
if cmd.FdExec && len(files) > 0 {
execFile = files[0]
files = files[1:]

View File

@ -1,5 +1,7 @@
package deamon
import "syscall"
func intSliceToUintptr(s []int) []uintptr {
var r []uintptr
if len(s) > 0 {
@ -21,3 +23,9 @@ func uintptrSliceToInt(s []uintptr) []int {
}
return r
}
func closeFds(s []int) {
for _, f := range s {
syscall.Close(f)
}
}