Added patch to return synchronously from InternetReadFile if there is no more data to read.

This commit is contained in:
Sebastian Lackner 2016-05-16 19:40:37 +02:00
parent cd9936654a
commit 9907ab34d3
3 changed files with 49 additions and 0 deletions

View File

@ -379,6 +379,7 @@ patch_enable_all ()
enable_winhttp_System_Proxy_Autoconfig="$1"
enable_wininet_Cleanup="$1"
enable_wininet_HttpOpenRequestW="$1"
enable_wininet_InternetReadFile="$1"
enable_wininet_Internet_Settings="$1"
enable_wininet_ParseX509EncodedCertificateForListBoxEntry="$1"
enable_winmm_Delay_Import_Depends="$1"
@ -1309,6 +1310,9 @@ patch_enable ()
wininet-HttpOpenRequestW)
enable_wininet_HttpOpenRequestW="$2"
;;
wininet-InternetReadFile)
enable_wininet_InternetReadFile="$2"
;;
wininet-Internet_Settings)
enable_wininet_Internet_Settings="$2"
;;
@ -7511,6 +7515,21 @@ if test "$enable_wininet_HttpOpenRequestW" -eq 1; then
) >> "$patchlist"
fi
# Patchset wininet-InternetReadFile
# |
# | This patchset fixes the following Wine bugs:
# | * [#40536] Return synchronously from InternetReadFile if there is no more data to read
# |
# | Modified files:
# | * dlls/wininet/http.c
# |
if test "$enable_wininet_InternetReadFile" -eq 1; then
patch_apply wininet-InternetReadFile/0001-wininet-Return-synchronously-from-InternetReadFile-i.patch
(
echo '+ { "Sebastian Lackner", "wininet: Return synchronously from InternetReadFile if there is no more data to read.", 1 },';
) >> "$patchlist"
fi
# Patchset wininet-Internet_Settings
# |
# | Modified files:

View File

@ -0,0 +1,29 @@
From 85a6e4977cf307dff5ebefa93bb08bc10c9cfb16 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 11 May 2016 23:25:18 +0200
Subject: wininet: Return synchronously from InternetReadFile if there is no
more data to read.
Similar to 87fffa1ebfb71fe7a34aa989fa88f85409dbb62f.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
---
dlls/wininet/http.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 646619b..c7d857e 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -3242,7 +3242,7 @@ static DWORD HTTPREQ_ReadFile(object_header_t *hdr, void *buffer, DWORD size, DW
if (TryEnterCriticalSection( &req->read_section ))
{
- if (get_avail_data(req))
+ if (get_avail_data(req) || end_of_read_data(req))
{
res = HTTPREQ_Read(req, buffer, size, read);
LeaveCriticalSection( &req->read_section );
--
2.8.0

View File

@ -0,0 +1 @@
Fixes: [40536] Return synchronously from InternetReadFile if there is no more data to read