If MsiGetProperty(A/W) is called with a NULL for the value buffer but
a value in the size for the value buffer, then Msi fills in the size of the value into the pointer for size. This is tested and confirmed with native MSI.
This commit is contained in:
parent
f58eed36ff
commit
639048b99a
|
@ -893,6 +893,10 @@ UINT WINAPI MsiGetPropertyA(MSIHANDLE hInstall, LPCSTR szName, LPSTR szValueBuf,
|
|||
if (NULL != szValueBuf && NULL == pchValueBuf)
|
||||
return ERROR_INVALID_PARAMETER;
|
||||
|
||||
/* This was tested against native msi */
|
||||
if (NULL == szValueBuf && NULL != pchValueBuf)
|
||||
*pchValueBuf = 0;
|
||||
|
||||
package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
|
||||
if (!package)
|
||||
return ERROR_INVALID_HANDLE;
|
||||
|
@ -920,6 +924,10 @@ UINT WINAPI MsiGetPropertyW(MSIHANDLE hInstall, LPCWSTR szName,
|
|||
if (NULL != szValueBuf && NULL == pchValueBuf)
|
||||
return ERROR_INVALID_PARAMETER;
|
||||
|
||||
/* This was tested against native msi */
|
||||
if (NULL == szValueBuf && NULL != pchValueBuf)
|
||||
*pchValueBuf = 0;
|
||||
|
||||
package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
|
||||
if (!package)
|
||||
return ERROR_INVALID_HANDLE;
|
||||
|
|
Loading…
Reference in New Issue