msi: Fix a heap corruption bug by resizing the src string before adding to it.
diff --git a/dlls/msi/files.c b/dlls/msi/files.c
index 38b1f8f..dc81e6a 100644
--- a/dlls/msi/files.c
+++ b/dlls/msi/files.c
@@ -469,8 +469,13 @@
*(ptr + 1) = '\0';
ptr = strrchrW(mi->source, '\\');
+ src = msi_realloc(src, (lstrlenW(src) + lstrlenW(ptr)) * sizeof(WCHAR));
+ if (!src)
+ return ERROR_OUTOFMEMORY;
+
lstrcatW(src, ptr + 1);
+ temppath[0] = '\0';
cab = msi_download_file(src, temppath);
lstrcpyW(mi->source, cab);