From a646b85ed68f84d43de655610d071cb81b032e39 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Mon, 26 Jul 2004 17:02:30 +0000 Subject: [PATCH] * dlls/shell32/shellpath.c: Aric Stewart Make sure that the size of the buffer passed to RegSetValueExW is in bytes not WCHARs. svn path=/trunk/; revision=10291 --- reactos/lib/shell32/shellpath.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/reactos/lib/shell32/shellpath.c b/reactos/lib/shell32/shellpath.c index 1de67af0c86..0667f4fb097 100644 --- a/reactos/lib/shell32/shellpath.c +++ b/reactos/lib/shell32/shellpath.c @@ -1101,6 +1101,7 @@ HRESULT WINAPI SHGetFolderPathW( if (RegQueryValueExW(hKey,szValueName,NULL,&dwType,(LPBYTE)pszPath,&dwPathLen)) { + /* value not existing */ if (dwCsidlFlags & CSIDL_MYFLAG_RELATIVE) { @@ -1114,7 +1115,8 @@ HRESULT WINAPI SHGetFolderPathW( strcpyW(pszPath + 3, szDefaultPath); } dwType=REG_SZ; - RegSetValueExW(hKey,szValueName,0,REG_SZ,(LPBYTE)pszPath,strlenW(pszPath)+1); + RegSetValueExW(hKey,szValueName,0,REG_SZ,(LPBYTE)pszPath, + (strlenW(pszPath)+1)*sizeof(WCHAR)); } } RegCloseKey(hKey); @@ -1150,7 +1152,8 @@ HRESULT WINAPI SHGetFolderPathW( strcpyW(pszPath + 3, szDefaultPath); } dwType=REG_SZ; - RegSetValueExW(hKey,szValueName,0,REG_SZ,(LPBYTE)pszPath,strlenW(pszPath)+1); + RegSetValueExW(hKey,szValueName,0,REG_SZ,(LPBYTE)pszPath, + (strlenW(pszPath)+1)*sizeof(WCHAR)); } RegCloseKey(hKey); } @@ -1322,14 +1325,14 @@ HRESULT WINAPI SHGetSpecialFolderLocation( *ppidl = _ILCreateControlPanel(); break; - case CSIDL_FONTS: - FIXME("virtual font folder"); - break; - case CSIDL_PRINTERS: *ppidl = _ILCreatePrinters(); break; + case CSIDL_FONTS: + FIXME("virtual font folder"); + break; + case CSIDL_BITBUCKET: *ppidl = _ILCreateBitBucket(); break;