Make sure paths end with a slash before concatenating file names.
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index b56d062..b3cd050 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -1965,12 +1965,17 @@
if (package->folders[i].ParentIndex >= 0)
{
+ int len;
TRACE(" ! Parent is %s\n", debugstr_w(package->folders[
package->folders[i].ParentIndex].Directory));
resolve_folder(package, package->folders[
package->folders[i].ParentIndex].Directory, path,source,
set_prop, NULL);
+ len = strlenW(path);
+ if (len && path[len-1] != '\\')
+ strcatW(path, cszbs);
+
if (!source)
{
if (package->folders[i].TargetDefault[0])
@@ -2072,9 +2077,14 @@
if (comp)
{
+ int len;
/* calculate target */
resolve_folder(package, comp->Directory, file->TargetPath, FALSE,
FALSE, NULL);
+ /* make sure that the path ends in a \ */
+ len = strlenW(file->TargetPath);
+ if (len && file->TargetPath[len-1] != '\\')
+ strcatW(file->TargetPath, cszbs);
strcatW(file->TargetPath,file->FileName);
TRACE("file %s resolves to %s\n",