On 20 Oct 2002, dpaun@rogers.com wrote: > ChangeLog > Fix memory corruption introduced by the previous rewrite. > > --- dlls/comctl32/comctl32undoc.c.A0 Sun Oct 20 11:39:48 2002 > +++ dlls/comctl32/comctl32undoc.c Sun Oct 20 11:40:25 2002 > @@ -1884,7 +1884,7 @@ I was just looking at this same problem. Should we not also remove the line hdpa->nItemCount++? DPA_SetPtr already does this (which is why we needed the -1 you added), so I think we end up incrementing it twice. For comparison, here's the patch I was about to send (relative to the first comctl32undoc.c patch): License: X11 Changelog: Paul Rupe <prupe@myrealbox.com> Do not increment nItemCount twice in DPA_InsertPtr --- comctl32undoc.c.exp 2002-10-20 09:01:42.000000000 -0400 +++ comctl32undoc.c 2002-10-20 12:15:06.000000000 -0400 @@ -1884,9 +1884,9 @@ /* create empty spot at the end */ if (!DPA_SetPtr(hdpa, hdpa->nItemCount, 0)) return -1; - memmove (hdpa->ptrs + i + 1, hdpa->ptrs + i, (hdpa->nItemCount - i) * sizeof(LPVOID)); + memmove (hdpa->ptrs + i + 1, hdpa->ptrs + i, + (hdpa->nItemCount - i - 1) * sizeof(LPVOID)); hdpa->ptrs[i] = p; - hdpa->nItemCount++; return i; } -- 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>