Handle 0 length buffers in MSI_FormatRecordW.

Remove unused buffer in deformat_string.
This commit is contained in:
Ulrich Czekalla 2005-02-09 22:22:25 +00:00 committed by Alexandre Julliard
parent 7acd363973
commit 3440035341
2 changed files with 6 additions and 4 deletions

View file

@ -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++;

View file

@ -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