msi(1/3): Don't crash if rec is NULL
James Hawkins
truiken at gmail.com
Fri Sep 14 12:30:21 CDT 2007
On 9/14/07, Juan Lang <juan.lang at gmail.com> wrote:
> > MSI_FormatRecordW is an internal function and we should be crashing if
> > rec is NULL.
>
> Are you sure? This is causing the iTunes installer to crash for a
> couple people. Besides, I don't think the code is written with this
> assumption in mind. In deformat_string_internal:
>
> static DWORD deformat_string_internal(MSIPACKAGE *package, LPCWSTR ptr,
> WCHAR** data, DWORD len, MSIRECORD* record,
> INT* failcount)
> ...
> if (ptr==NULL)
> {
> TRACE("Deformatting NULL string\n");
> *data = NULL;
> return 0;
> }
>
> So deformat_string_internal handles NULL correctly. This patch
> changes one of the call sites to avoid dereferencing a NULL pointer
> before passing it to a function that deals with a NULL input.
>
The public APIs check for bad records and return ERROR_INVALID_HANDLE,
so they will never send in a NULL rec. Something internally is
sending in a NULL rec, and that needs to be fixed.
--
James Hawkins
More information about the wine-devel
mailing list