Module: wine Branch: master Commit: 8f5b9f4d4bf13cc95e809d9d7e9e24a96ea86878 URL: https://source.winehq.org/git/wine.git/?a=commit;h=8f5b9f4d4bf13cc95e809d9d7...
Author: Alistair Leslie-Hughes leslie_alistair@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@hotmail.com Signed-off-by: Alexandre Julliard julliard@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; }