Make sure that the size of the buffer passed to RegSetValueExW is in
bytes not WCHARs.
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index c24f6fa..bd273cd 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -1115,7 +1115,8 @@
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);
@@ -1151,7 +1152,8 @@
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);
}