Module: wine Branch: master Commit: 99f651bd3707b869297da43c32c23606f89a3fd1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=99f651bd3707b869297da43c32...
Author: Rob Shearman rob@codeweavers.com Date: Mon Mar 17 13:22:14 2008 +0000
wininet: The lpszLocalFileName parameter to CommitUrlCacheEntryA is optional, so check before converting it from Unicode to ANSI.
---
dlls/wininet/urlcache.c | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c index c5e37d8..429867a 100644 --- a/dlls/wininet/urlcache.c +++ b/dlls/wininet/urlcache.c @@ -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);