[PATCH 1/4] msi: Handle the remote case directly in MsiGetTargetPathA().
Hans Leidekker
hans at codeweavers.com
Thu May 17 03:24:59 CDT 2018
On Wed, 2018-05-16 at 21:14 -0500, Zebediah Figura wrote:
> +UINT WINAPI MsiGetTargetPathA(MSIHANDLE hinst, const char *folder, char *buf, DWORD *sz)
> {
> - LPWSTR szwFolder;
> - awstring path;
> + MSIPACKAGE *package;
> + const WCHAR *path;
> + WCHAR *folderW;
> UINT r;
>
> - TRACE("%s %p %p\n", debugstr_a(szFolder), szPathBuf, pcchPathBuf);
> + TRACE("%s %p %p\n", debugstr_a(folder), buf, sz);
>
> - szwFolder = strdupAtoW(szFolder);
> - if (szFolder && !szwFolder)
> - return ERROR_FUNCTION_FAILED;
> + if (!folder)
> + return ERROR_INVALID_PARAMETER;
>
> - path.unicode = FALSE;
> - path.str.a = szPathBuf;
> + if (!(folderW = strdupAtoW(folder)))
> + return ERROR_OUTOFMEMORY;
>
> - r = MSI_GetTargetPath( hInstall, szwFolder, &path, pcchPathBuf );
> + package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE);
> + if (!package)
> + {
> + WCHAR *path = NULL;
> + MSIHANDLE remote;
>
> - msi_free( szwFolder );
> + if (!(remote = msi_get_remote(hinst)))
> + return ERROR_INVALID_HANDLE;
folderW is leaked here. I missed this in the patch for MsiGetPropertyA.
More information about the wine-devel
mailing list