Alistair Leslie-Hughes : wininet: Always set last error in InternetReadFile.
Alexandre Julliard
julliard at winehq.org
Mon Jun 24 16:06:22 CDT 2019
Module: wine
Branch: master
Commit: 8f5b9f4d4bf13cc95e809d9d7e9e24a96ea86878
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8f5b9f4d4bf13cc95e809d9d7e9e24a96ea86878
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Mon Jun 24 00:22:53 2019 +0000
wininet: Always set last error in InternetReadFile.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47352
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/wininet/internet.c | 3 +--
dlls/wininet/tests/http.c | 6 ++++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index 6671950..7294241 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -2193,8 +2193,7 @@ BOOL WINAPI InternetReadFile(HINTERNET hFile, LPVOID lpBuffer,
TRACE("-- %s (%u) (bytes read: %d)\n", res == ERROR_SUCCESS ? "TRUE": "FALSE", res,
pdwNumOfBytesRead ? *pdwNumOfBytesRead : -1);
- if(res != ERROR_SUCCESS)
- SetLastError(res);
+ SetLastError(res);
return res == ERROR_SUCCESS;
}
diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c
index 70d5738..c8a2796 100644
--- a/dlls/wininet/tests/http.c
+++ b/dlls/wininet/tests/http.c
@@ -987,7 +987,10 @@ static void InternetReadFile_chunked_test(void)
{
char *buffer = HeapAlloc(GetProcessHeap(),0,length+1);
+ SetLastError(0xdeadbeef);
res = InternetReadFile(hor,buffer,length,&got);
+ ok(GetLastError() == 0 ||
+ broken(GetLastError() == 0xdeadbeef /* XP/W2K3 */), "Last Error not reset %u\n", GetLastError());
buffer[got]=0;
trace("ReadFile -> %i %i\n",res,got);
@@ -1000,8 +1003,11 @@ static void InternetReadFile_chunked_test(void)
if (length == 0)
{
got = 0xdeadbeef;
+ SetLastError(0xdeadbeef);
res = InternetReadFile( hor, buffer, 1, &got );
ok( res, "InternetReadFile failed: %u\n", GetLastError() );
+ ok(GetLastError() == 0 ||
+ broken(GetLastError() == 0xdeadbeef /* XP/W2K3 */), "Last Error not reset %u\n", GetLastError());
ok( !got, "got %u\n", got );
break;
}
More information about the wine-cvs
mailing list