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