diff --git a/dll/win32/kernel32/client/console/readwrite.c b/dll/win32/kernel32/client/console/readwrite.c index b06f7ab8299..00fbf7761cb 100644 --- a/dll/win32/kernel32/client/console/readwrite.c +++ b/dll/win32/kernel32/client/console/readwrite.c @@ -681,8 +681,8 @@ IntWriteConsole(IN HANDLE hConsoleOutput, /* Release the capture buffer if needed */ if (CaptureBuffer) CsrFreeCaptureBuffer(CaptureBuffer); - /* Retrieve the results */ - if (Success) + /* Retrieve the results. NOTE: lpNumberOfCharsWritten optional since Vista+ */ + if (Success && lpNumberOfCharsWritten) { _SEH2_TRY { @@ -695,7 +695,7 @@ IntWriteConsole(IN HANDLE hConsoleOutput, } _SEH2_END; } - else + else if (!Success) { BaseSetLastNTError(ApiMessage.Status); }