diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 4b6acdc..7b5c748 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -3244,12 +3244,19 @@ static DWORD HTTPREQ_ReadFile(object_header_t *hdr, void *buffer, DWORD size, DW if (TryEnterCriticalSection( &req->read_section )) { + refill_read_buffer(req, BLOCKING_DISALLOW, NULL); if (get_avail_data(req)) { res = HTTPREQ_Read(req, buffer, size, read); LeaveCriticalSection( &req->read_section ); return res; } + if (end_of_read_data(req)) + { + *read = 0; + LeaveCriticalSection( &req->read_section ); + return ERROR_SUCCESS; + } LeaveCriticalSection( &req->read_section ); }