diff options
author | Chris Wilson <chris+github@qwirx.com> | 2015-12-24 23:20:06 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2015-12-24 23:20:06 +0000 |
commit | bfb39368b61dd6bf67d85ea9fd2d1126f2b48722 (patch) | |
tree | f6cf59a7b941f21c72b0ca2b292fdd89ead5b695 /lib | |
parent | 91bb3851fdc99cdd6d353a164c4d7207c036ab2f (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.cpp | 2 |
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; } |