Rob Shearman : wininet: Fix GetUrlCacheEntryInfoA/ W when a NULL lpCacheEntryInfo parameter is passed in.
Alexandre Julliard
julliard at winehq.org
Mon Oct 6 09:35:08 CDT 2008
Module: wine
Branch: master
Commit: ab849ee2971aa4778b01e624d0660fdcdb491970
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab849ee2971aa4778b01e624d0660fdcdb491970
Author: Rob Shearman <robertshearman at 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,
More information about the wine-cvs
mailing list