Alexandre Julliard (@julliard) commented about dlls/scrrun/filesystem.c:
- int len; - WCHAR src_path[MAX_PATH]; + int len, dst_len; + WCHAR src_path[MAX_PATH], dst_path[MAX_PATH]; + WCHAR *filename;
TRACE("%p %s %s\n", iface, debugstr_w(source), debugstr_w(destination));
if(!source || !source[0] || !destination || !destination[0]) return E_INVALIDARG;
+ if (!GetFullPathNameW(source, MAX_PATH, src_path, &filename)) + return E_FAIL; + len = SysStringLen(source); lstrcpyW(src_path, source); It doesn't make sense to get the full path name and then overwrite it with the original source. Note that this invalidates the filename data as well.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/391#note_5929