Module: wine Branch: master Commit: ab849ee2971aa4778b01e624d0660fdcdb491970 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab849ee2971aa4778b01e624d0...
Author: Rob Shearman robertshearman@gmail.com Date: Fri Oct 3 12:57:57 2008 +0100
wininet: Fix GetUrlCacheEntryInfoA/W when a NULL lpCacheEntryInfo parameter is passed in.
---
dlls/wininet/tests/urlcache.c | 5 +++++ dlls/wininet/urlcache.c | 6 ++++++ 2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/dlls/wininet/tests/urlcache.c b/dlls/wininet/tests/urlcache.c index 1e0e5b6..d264b91 100644 --- a/dlls/wininet/tests/urlcache.c +++ b/dlls/wininet/tests/urlcache.c @@ -112,6 +112,11 @@ static void test_GetUrlCacheEntryInfoExA(void)
check_cache_entry_infoA("GetUrlCacheEntryInfoEx", lpCacheEntryInfo);
+ cbCacheEntryInfo = 100000; + ret = GetUrlCacheEntryInfoEx(TEST_URL, NULL, &cbCacheEntryInfo, NULL, NULL, NULL, 0); + ok(!ret, "GetUrlCacheEntryInfoEx with zero-length buffer should fail\n"); + ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "GetUrlCacheEntryInfoEx should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %d\n", GetLastError()); + HeapFree(GetProcessHeap(), 0, lpCacheEntryInfo); }
diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c index ff59f27..792c7bc 100644 --- a/dlls/wininet/urlcache.c +++ b/dlls/wininet/urlcache.c @@ -1536,6 +1536,9 @@ BOOL WINAPI GetUrlCacheEntryInfoA(
if (lpdwCacheEntryInfoBufferSize) { + if (!lpCacheEntryInfo) + *lpdwCacheEntryInfoBufferSize = 0; + error = URLCache_CopyEntry( pContainer, pHeader, @@ -1614,6 +1617,9 @@ BOOL WINAPI GetUrlCacheEntryInfoW(LPCWSTR lpszUrl,
if (lpdwCacheEntryInfoBufferSize) { + if (!lpCacheEntryInfo) + *lpdwCacheEntryInfoBufferSize = 0; + error = URLCache_CopyEntry( pContainer, pHeader,