From: Mathias Hall-Andersen Date: Tue, 18 Jul 2017 12:15:29 +0000 (+0200) Subject: Fixed file descriptor leak on linux X-Git-Tag: 0.0.20180514~136 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd6027a4d5114df964e88e357b52883411174558;p=thirdparty%2Fwireguard-go.git Fixed file descriptor leak on linux --- diff --git a/src/send.go b/src/send.go index fdbc676..ca42934 100644 --- a/src/send.go +++ b/src/send.go @@ -313,17 +313,15 @@ func (device *Device) RoutineEncryption() { elem.packet = append(elem.packet, 0) } - // encrypt content + // encrypt content (append to header) binary.LittleEndian.PutUint64(nonce[4:], elem.nonce) elem.packet = elem.keyPair.send.Seal( - elem.packet[:0], + header, nonce[:], elem.packet, nil, ) - length := MessageTransportHeaderSize + len(elem.packet) - elem.packet = elem.buffer[:length] elem.mutex.Unlock() // refresh key if necessary diff --git a/src/tun_linux.go b/src/tun_linux.go index d0e9761..a200bd8 100644 --- a/src/tun_linux.go +++ b/src/tun_linux.go @@ -37,6 +37,8 @@ func (tun *NativeTun) setMTU(n int) error { return err } + defer syscall.Close(fd) + // do ioctl call var ifr [64]byte @@ -70,6 +72,8 @@ func (tun *NativeTun) MTU() (int, error) { return 0, err } + defer syscall.Close(fd) + // do ioctl call var ifr [64]byte