wininet: The lpszLocalFileName parameter to CommitUrlCacheEntryA is optional, so...
authorRob Shearman <rob@codeweavers.com>
Mon, 17 Mar 2008 13:22:14 +0000 (13:22 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 17 Mar 2008 14:20:10 +0000 (15:20 +0100)
dlls/wininet/urlcache.c

index c5e37d82045b69d65693e632ea734de2bc340912..429867a7dc90359c69d76911923529985279e485 100644 (file)
@@ -2494,11 +2494,14 @@ BOOL WINAPI CommitUrlCacheEntryA(
         goto cleanup;
     MultiByteToWideChar(CP_ACP, 0, lpszUrlName, -1, url_name, len);
 
-    len = MultiByteToWideChar(CP_ACP, 0, lpszLocalFileName, -1, NULL, 0);
-    local_file_name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
-    if (!local_file_name)
-        goto cleanup;
-    MultiByteToWideChar(CP_ACP, 0, lpszLocalFileName, -1, local_file_name, len);
+    if (lpszLocalFileName)
+    {
+        len = MultiByteToWideChar(CP_ACP, 0, lpszLocalFileName, -1, NULL, 0);
+        local_file_name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+        if (!local_file_name)
+            goto cleanup;
+        MultiByteToWideChar(CP_ACP, 0, lpszLocalFileName, -1, local_file_name, len);
+    }
     if (lpszFileExtension)
     {
         len = MultiByteToWideChar(CP_ACP, 0, lpszFileExtension, -1, NULL, 0);
@@ -2522,6 +2525,7 @@ BOOL WINAPI CommitUrlCacheEntryA(
 
 cleanup:
     HeapFree(GetProcessHeap(), 0, original_url);
+    HeapFree(GetProcessHeap(), 0, file_extension);
     HeapFree(GetProcessHeap(), 0, local_file_name);
     HeapFree(GetProcessHeap(), 0, url_name);