comctl32/treeview: Protect TVM_GETITEM from invalid item pointers

Nikolay Sivov bunglehead at gmail.com
Fri Feb 22 04:34:22 CST 2013


On 2/22/2013 14:09, Alexandre Julliard wrote:
> Nikolay Sivov <nsivov at codeweavers.com> writes:
>
>> @@ -2101,9 +2102,17 @@ TREEVIEW_GetItemT(const TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem, BOOL isW)
>>       {
>>           if (!item) return FALSE;
>>   
>> -        TRACE("got item from different tree %p, called from %p\n", item->infoPtr, infoPtr);
>> -        infoPtr = item->infoPtr;
>> -        if (!TREEVIEW_ValidItem(infoPtr, item)) return FALSE;
>> +        __TRY
>> +        {
>> +            infoPtr = item->infoPtr;
>> +            TRACE("got item from different tree %p, called from %p\n", item->infoPtr, infoPtr);
>> +            if (!TREEVIEW_ValidItem(infoPtr, item)) return FALSE;
> You can't return from a try block.
Ah, thanks.
>
> Also have you verified that this is not just masking some other Wine
> bug?
Honestly, I have not. I only looked at +treeview log attached to bug. 
Will try to figure out what's going on exactly.




More information about the wine-devel mailing list