diff --git "a/dll/win32/winhttp/request.c" "b/dll/win32/winhttp/request.c" index da28f7b1826..9867f873577 100644 --- "a/dll/win32/winhttp/request.c" +++ "b/dll/win32/winhttp/request.c" @@ -2989,7 +2989,7 @@ done: } } - if (ret && available) *available = count; + if (ret && count && available) *available = count; return ret; } @@ -3034,7 +3034,11 @@ BOOL WINAPI WinHttpQueryDataAvailable( HINTERNET hrequest, LPDWORD available ) ret = queue_task( (struct task_header *)q ); } else + { + EnterCriticalSection( &request->task_cs ); ret = query_data_available( request, available, FALSE ); + LeaveCriticalSection( &request->task_cs ); + } release_object( &request->hdr ); if (ret) SetLastError( ERROR_SUCCESS );