[EMAIL PROTECTED] wrote:
> Message: 4 Date: Sun, 30 Mar 2008 19:13:46 -0600 From: Vitaliy 
> Margolen <[EMAIL PROTECTED]> Subject: Re: setupapi: prevent page 
> faults in SetupDiDeleteDeviceInterfaceRegKey To: [email protected] 
> Message-ID: <[EMAIL PROTECTED]> Content-Type: text/plain; 
> charset=ISO-8859-1; format=flowed Christopher wrote:
>> > Changelog:
>> > Check that the handle and pointer passed to 
>> > SetupDiDeleteDeviceInterfaceRegKey are valid to read from. This patch 
>> > continues to address bug #12242
>> > 
>> > -    if (!DeviceInterfaceData ||
>> > +    if (!DeviceInterfaceData || IsBadReadPtr(DeviceInterfaceData, 
>> > sizeof(SP_DEVICE_INTERFACE_DATA)) ||
>>     
>
> Don't ever use IsBadReadPtr and IsBadWritePtr functions. They are bad and
> even MS stopped using them. You have to use TRY-EXCEPT block around an
> access to the memory. For example see implementation of lstrcpyA
> (kernel32/string.c: 359).
>
>   
>> > +    ok(!ret && GetLastError() == ERROR_INVALID_HANDLE, "Expected 
>> > SetupDiDeleteDeviceInterfaceRegKey to return FALSE, got %s, \
>> > +with error code: 6, got %d\n", ret ? "TRUE" : "FALSE", GetLastError());
>>     
>
> This is bad way to split strings in c. Do something like this:
>
>     ok(!ret && GetLastError() == ERROR_INVALID_HANDLE,
>       "Expected SetupDiDeleteDeviceInterfaceRegKey to return FALSE, got %s, "
>       "with error code: 6, got %d\n", ret ? "TRUE" : "FALSE", GetLastError());
>
> Vitaliy.
Thanks for the comments! I found that Alexander Morozov's patches fix 
the same issue my patch was aimed at. After his are committed, I'll fix 
and resubmit mine if it's needed.

Christopher Berner


Reply via email to