diff options
author | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2017-07-18 14:15:29 +0200 |
---|---|---|
committer | Mathias Hall-Andersen <mathias@hall-andersen.dk> | 2017-07-18 14:15:29 +0200 |
commit | bd6027a4d5114df964e88e357b52883411174558 (patch) | |
tree | 617b6c4b8737d8a7834d2cfed2571016cad0d635 | |
parent | c5d7efc2467abb6cd8365c83fae68da6924c17f2 (diff) |
Fixed file descriptor leak on linux
-rw-r--r-- | src/send.go | 6 | ||||
-rw-r--r-- | src/tun_linux.go | 4 |
2 files changed, 6 insertions, 4 deletions
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 |