msi: Fix a possible memory leak.
This commit is contained in:
parent
9c018fd877
commit
20c5746649
|
@ -2816,8 +2816,8 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param)
|
||||||
LPCWSTR buffer, extension;
|
LPCWSTR buffer, extension;
|
||||||
MSICOMPONENT *comp;
|
MSICOMPONENT *comp;
|
||||||
static const WCHAR szlnk[]={'.','l','n','k',0};
|
static const WCHAR szlnk[]={'.','l','n','k',0};
|
||||||
IShellLinkW *sl;
|
IShellLinkW *sl = NULL;
|
||||||
IPersistFile *pf;
|
IPersistFile *pf = NULL;
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
|
|
||||||
buffer = MSI_RecordGetString(row,4);
|
buffer = MSI_RecordGetString(row,4);
|
||||||
|
@ -2841,17 +2841,17 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param)
|
||||||
res = CoCreateInstance( &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
res = CoCreateInstance( &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||||
&IID_IShellLinkW, (LPVOID *) &sl );
|
&IID_IShellLinkW, (LPVOID *) &sl );
|
||||||
|
|
||||||
if (FAILED(res))
|
if (FAILED( res ))
|
||||||
{
|
{
|
||||||
ERR("Is IID_IShellLink\n");
|
ERR("CLSID_ShellLink not available\n");
|
||||||
return ERROR_SUCCESS;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = IShellLinkW_QueryInterface( sl, &IID_IPersistFile,(LPVOID*) &pf );
|
res = IShellLinkW_QueryInterface( sl, &IID_IPersistFile,(LPVOID*) &pf );
|
||||||
if( FAILED( res ) )
|
if (FAILED( res ))
|
||||||
{
|
{
|
||||||
ERR("Is IID_IPersistFile\n");
|
ERR("QueryInterface(IID_IPersistFile) failed\n");
|
||||||
return ERROR_SUCCESS;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = MSI_RecordGetString(row,2);
|
buffer = MSI_RecordGetString(row,2);
|
||||||
|
@ -2937,7 +2937,10 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param)
|
||||||
|
|
||||||
msi_free(target_file);
|
msi_free(target_file);
|
||||||
|
|
||||||
|
err:
|
||||||
|
if (pf)
|
||||||
IPersistFile_Release( pf );
|
IPersistFile_Release( pf );
|
||||||
|
if (sl)
|
||||||
IShellLinkW_Release( sl );
|
IShellLinkW_Release( sl );
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
|
|
Loading…
Reference in New Issue