Weird parameters with LVM_GETSUBITEMRECT

Paul Rupe prupe at myrealbox.com
Fri May 17 16:07:55 CDT 2002


A recent change to dlls/comctl32/listview.c implemented GetSubItemRect,
but this causes Xnews to hang when selecting a newsgroup from the list.
I don't think the change itself is at fault, but it may have uncovered a
bug elsewhere.  The app gets a message LVM_GETSUBITEMRECT (4152) with
the following parameters:
   wParam: 1078422692 (0x40476ca4)
   lParam: 1078422612 (0x40476c54)
wParam should be a small integer (an index into the listview items) and
lParam is a pointer to a RECT:
   *(LPRECT)lParam: {left = 2, top = 1079544291,
                     right = 28246089, bottom = 1079843718}
                or  {left = 0x2, top = 0x405889e3,
                     right = 0x1af0049, bottom = 0x405d1b86}
lParam->left is reasonable, but lParam->top should be a small index.
Note that wParam, lParam, and lParam->top are fairly close numerically.
The function LISTVIEW_GetSubItemRect then tries to loop from 0 to that
huge number, causing the hang.  I put a sanity check inside that
function to stop it from going past GETITEMCOUNT and that works, but I
want to see if I can fix it the right way.


-- 
Paul Rupe                                        "She smiled, in the 
end."
p r u p e @ m y r e a l b o x . c o m

| Oppose government police-ware on your PC!
| Stop the Consumer Broadband and Digital Television Promotion Act!
| <http://www.eff.org/alerts/20020322_eff_cbdtpa_alert.html>
--




More information about the wine-devel mailing list