From bfb39368b61dd6bf67d85ea9fd2d1126f2b48722 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 24 Dec 2015 23:20:06 +0000 Subject: 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. --- lib/server/WinNamedPipeStream.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib') 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; } -- cgit v1.2.3