server: Avoid accessing free'd thread pointers.

Eric Pouech eric.pouech at wanadoo.fr
Fri Nov 10 07:47:15 CST 2006


>>- the generic issue in the SAFE version, where we still access the 
>>cursor after it has been potentially fixed
>>    
>>
>
>No, in the SAFE macros we don't, that's the whole point of having
>them.
>
>  
>
reading from wine/list.h
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list) \
    for ((cursor) = (list)->next, (cursor2) = (cursor)->next; \
         (cursor) != (list); \
         (cursor) = (cursor2), (cursor2) = (cursor)->next)

well, to me, the "(cursor2) = (cursor)->next" accesses cursor *AFTER* it 
has been potentially freed

A+



More information about the wine-devel mailing list