Be sure that set paths are terminated with a backslash.
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index b51bd19..5d7c107 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -5055,6 +5055,7 @@
{
DWORD i;
LPWSTR path = NULL;
+ INT len;
MSIFOLDER *folder;
TRACE("(%p %s %s)\n",package, debugstr_w(szFolder),debugstr_w(szFolderPath));
@@ -5073,7 +5074,17 @@
return ERROR_INVALID_PARAMETER;
HeapFree(GetProcessHeap(),0,path);
- strcpyW(folder->Property,szFolderPath);
+ len = strlenW(szFolderPath);
+
+ if (szFolderPath[len-1]!='\\')
+ {
+ len +=2;
+ folder->Property = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR));
+ strcpyW(folder->Property,szFolderPath);
+ strcatW(folder->Property,cszbs);
+ }
+ else
+ folder->Property = dupstrW(szFolderPath);
for (i = 0; i < package->loaded_folders; i++)
package->folders[i].ResolvedTarget=NULL;