msi: Fix a record leak on error paths (Coverity).
This commit is contained in:
parent
d78a0612ed
commit
dc33b13581
|
@ -1003,7 +1003,7 @@ static UINT HANDLE_CustomType5_6( MSIPACKAGE *package, const WCHAR *source, cons
|
|||
'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
|
||||
'`','B','i' ,'n','a','r','y','`',' ','W','H','E','R','E',' ',
|
||||
'`','N','a','m','e','`',' ','=',' ','\'','%','s','\'',0};
|
||||
MSIRECORD *row = 0;
|
||||
MSIRECORD *row = NULL;
|
||||
msi_custom_action_info *info;
|
||||
CHAR *buffer = NULL;
|
||||
WCHAR *bufferw = NULL;
|
||||
|
@ -1017,10 +1017,14 @@ static UINT HANDLE_CustomType5_6( MSIPACKAGE *package, const WCHAR *source, cons
|
|||
return ERROR_FUNCTION_FAILED;
|
||||
|
||||
r = MSI_RecordReadStream(row, 2, NULL, &sz);
|
||||
if (r != ERROR_SUCCESS) return r;
|
||||
if (r != ERROR_SUCCESS) goto done;
|
||||
|
||||
buffer = msi_alloc( sz + 1 );
|
||||
if (!buffer) return ERROR_FUNCTION_FAILED;
|
||||
if (!buffer)
|
||||
{
|
||||
r = ERROR_FUNCTION_FAILED;
|
||||
goto done;
|
||||
}
|
||||
|
||||
r = MSI_RecordReadStream(row, 2, buffer, &sz);
|
||||
if (r != ERROR_SUCCESS)
|
||||
|
@ -1040,6 +1044,7 @@ static UINT HANDLE_CustomType5_6( MSIPACKAGE *package, const WCHAR *source, cons
|
|||
done:
|
||||
msi_free(bufferw);
|
||||
msi_free(buffer);
|
||||
msiobj_release(&row->hdr);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue