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",