diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-11-23 10:30:56 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-11-23 10:30:56 +0100 |
commit | 2265108384aa8e89aa9a961ae98bc8f02736a668 (patch) | |
tree | 6fd3ad1f4c87a7fd546e4e4e24bbd1f381f1d459 | |
parent | docs: move to docs subdirectory (diff) | |
download | wireguard-windows-2265108384aa8e89aa9a961ae98bc8f02736a668.tar.xz wireguard-windows-2265108384aa8e89aa9a961ae98bc8f02736a668.zip |
manager: cleanup pipes on failure
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r-- | manager/ipc_pipe.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/manager/ipc_pipe.go b/manager/ipc_pipe.go index d07cf719..f2779d62 100644 --- a/manager/ipc_pipe.go +++ b/manager/ipc_pipe.go @@ -33,6 +33,11 @@ func inheritableEvents() (ourEvents *os.File, theirEvents *os.File, theirEventSt return } theirEventStr, err = makeInheritableAndGetStr(theirEvents) + if err != nil { + theirEvents.Close() + ourEvents.Close() + return + } return } @@ -43,13 +48,24 @@ func inheritableSocketpairEmulation() (ourReader *os.File, theirReader *os.File, } theirWriterStr, err = makeInheritableAndGetStr(theirWriter) if err != nil { + ourReader.Close() + theirWriter.Close() return } theirReader, ourWriter, err = os.Pipe() if err != nil { + ourReader.Close() + theirWriter.Close() return } theirReaderStr, err = makeInheritableAndGetStr(theirReader) + if err != nil { + ourReader.Close() + theirWriter.Close() + theirReader.Close() + ourWriter.Close() + return + } return } |