Handle 0 length buffers in MSI_FormatRecordW.
Remove unused buffer in deformat_string.
This commit is contained in:
parent
7acd363973
commit
3440035341
|
@ -518,10 +518,9 @@ DWORD deformat_string(MSIPACKAGE *package, LPCWSTR ptr, WCHAR** data )
|
|||
{
|
||||
MSIRECORD *rec = MSI_CreateRecord(1);
|
||||
DWORD size = 0;
|
||||
WCHAR size_buf[2] = {' ',0};
|
||||
|
||||
MSI_RecordSetStringW(rec,0,ptr);
|
||||
MSI_FormatRecordW(package,rec,size_buf,&size);
|
||||
MSI_FormatRecordW(package,rec,NULL,&size);
|
||||
if (size >= 0)
|
||||
{
|
||||
size++;
|
||||
|
|
|
@ -451,9 +451,12 @@ UINT MSI_FormatRecordW( MSIPACKAGE* package, MSIRECORD* record, LPWSTR buffer,
|
|||
}
|
||||
else
|
||||
{
|
||||
memcpy(buffer,deformated,(*size)*sizeof(WCHAR));
|
||||
if (*size > 0)
|
||||
{
|
||||
memcpy(buffer,deformated,(*size)*sizeof(WCHAR));
|
||||
buffer[(*size)-1] = 0;
|
||||
}
|
||||
rc = ERROR_MORE_DATA;
|
||||
buffer[(*size)-1] = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue