Piotr Caban : wininet: Don't overwrite locked entry in CommitUrlCacheEntry.

Alexandre Julliard julliard at winehq.org
Fri Apr 6 14:43:23 CDT 2012


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Apr  5 21:35:00 2012 +0200

wininet: Don't overwrite locked entry in CommitUrlCacheEntry.

---

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

diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c
index f4a47b1..155a0e9 100644
--- a/dlls/wininet/urlcache.c
+++ b/dlls/wininet/urlcache.c
@@ -2678,6 +2678,14 @@ static BOOL CommitUrlCacheEntryInternal(
 
     if (URLCache_FindHash(pHeader, lpszUrlNameA, &pHashEntry))
     {
+        if ((pHashEntry->dwHashKey & ((1<<HASHTABLE_FLAG_BITS)-1)) == HASHTABLE_LOCK)
+        {
+            /* FIXME: implement timeout object unlocking */
+            FIXME("Trying to overwrite locked entry\n");
+            SetLastError(ERROR_SHARING_VIOLATION);
+            goto cleanup;
+        }
+
         FIXME("entry already in cache - don't know what to do!\n");
 /*
  *        SetLastError(ERROR_FILE_NOT_FOUND);




More information about the wine-cvs mailing list