From 8ca8687fcc29e4c70ec196c3e892b2d58ea704f0 Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Sun, 19 Feb 2012 23:57:27 +0100 Subject: [PATCH] Fix = use instead of == When checking for ConnectNamedPipe status, the error check uses if ( err = ERROR_IO_PENDING) instead of using == which causes this error check to always trigger. This commit fixes this, however it needs careful testing since the fact that it went unnoticed means the code with the bug was working as expected. Maybe changing it will cause unexpected regressions. --- vdservice/vdservice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vdservice/vdservice.cpp b/vdservice/vdservice.cpp index 29f4c9a..50a70c2 100644 --- a/vdservice/vdservice.cpp +++ b/vdservice/vdservice.cpp @@ -893,7 +893,7 @@ bool VDService::launch_agent() ZeroMemory(&overlap, sizeof(overlap)); overlap.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); DWORD err = (ConnectNamedPipe(_pipe_state.pipe, &overlap) ? 0 : GetLastError()); - if (err = ERROR_IO_PENDING) { + if (err == ERROR_IO_PENDING) { HANDLE wait_handles[2] = {overlap.hEvent, _agent_proc_info.hProcess}; DWORD wait_ret = WaitForMultipleObjects(2, wait_handles, FALSE, VD_AGENT_TIMEOUT); if (wait_ret != WAIT_OBJECT_0) {