summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2015-12-24 23:20:06 +0000
committerChris Wilson <chris+github@qwirx.com>2015-12-24 23:20:06 +0000
commitbfb39368b61dd6bf67d85ea9fd2d1126f2b48722 (patch)
treef6cf59a7b941f21c72b0ca2b292fdd89ead5b695 /lib
parent91bb3851fdc99cdd6d353a164c4d7207c036ab2f (diff)
Properly initialise pBytesTransferred before WaitForOverlappedOperation returns.
Returning an uninitialised value was causing copying of random amounts of data in bbackupd on command socket disconnect, and crashes.
Diffstat (limited to 'lib')
-rw-r--r--lib/server/WinNamedPipeStream.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/server/WinNamedPipeStream.cpp b/lib/server/WinNamedPipeStream.cpp
index de2822a8..448a3c9d 100644
--- a/lib/server/WinNamedPipeStream.cpp
+++ b/lib/server/WinNamedPipeStream.cpp
@@ -311,6 +311,7 @@ bool WinNamedPipeStream::WaitForOverlappedOperation(OVERLAPPED& Overlapped,
if (err == ERROR_HANDLE_EOF)
{
Close();
+ *pBytesTransferred = 0;
return true;
}
@@ -324,6 +325,7 @@ bool WinNamedPipeStream::WaitForOverlappedOperation(OVERLAPPED& Overlapped,
BOX_INFO(BOX_WIN_ERRNO_MESSAGE(err,
"Named pipe peer disconnected"));
Close();
+ *pBytesTransferred = 0;
return true;
}