Piotr Caban : wininet: Fixed handling of GET_INSTALLED_ENTRY flag in GetUrlCacheEntryInfoA.

Alexandre Julliard julliard at winehq.org
Tue Sep 25 15:13:39 CDT 2012


Module: wine
Branch: master
Commit: a342ded2887997e7b4734a4b0c946e10a40835e5
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a342ded2887997e7b4734a4b0c946e10a40835e5

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Sep 25 17:30:58 2012 +0200

wininet: Fixed handling of GET_INSTALLED_ENTRY flag in GetUrlCacheEntryInfoA.

---

 dlls/wininet/urlcache.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c
index 25e2ecf..c0d11b6 100644
--- a/dlls/wininet/urlcache.c
+++ b/dlls/wininet/urlcache.c
@@ -81,6 +81,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(wininet);
 #define HASHTABLE_FLAG_BITS     6
 
 #define PENDING_DELETE_CACHE_ENTRY  0x00400000
+#define INSTALLED_CACHE_ENTRY       0x10000000
+#define GET_INSTALLED_ENTRY         0x200
 #define CACHE_CONTAINER_NO_SUBDIR   0xFE
 
 #define CACHE_HEADER_DATA_ROOT_LEAK_OFFSET 0x16
@@ -1732,7 +1734,7 @@ BOOL WINAPI GetUrlCacheEntryInfoExA(
         SetLastError(ERROR_INVALID_PARAMETER);
         return FALSE;
     }
-    if (dwFlags != 0)
+    if (dwFlags & ~GET_INSTALLED_ENTRY)
     {
         FIXME("Undocumented flag(s): %x\n", dwFlags);
         SetLastError(ERROR_FILE_NOT_FOUND);
@@ -1778,6 +1780,13 @@ BOOL WINAPI GetUrlCacheEntryInfoExA(
     if (pUrlEntry->dwOffsetHeaderInfo)
         TRACE("Header info: %s\n", debugstr_a((LPCSTR)pUrlEntry + pUrlEntry->dwOffsetHeaderInfo));
 
+    if((dwFlags & GET_INSTALLED_ENTRY) && !(pUrlEntry->CacheEntryType & INSTALLED_CACHE_ENTRY))
+    {
+        URLCacheContainer_UnlockIndex(pContainer, pHeader);
+        SetLastError(ERROR_FILE_NOT_FOUND);
+        return FALSE;
+    }
+
     if (lpdwCacheEntryInfoBufSize)
     {
         if (!lpCacheEntryInfo)




More information about the wine-cvs mailing list