Re: [comctl32] Reduce memory usage of the syslink control (Take 4)
Thomas Weidenmueller <wine-patches(a)reactsoft.com> writes:
@@ -1062,35 +1063,41 @@
if(Item->mask & LIF_ITEMID) { - if(!di->u.Link.szID) + if(di->u.Link.szID) { - di->u.Link.szID = Alloc((MAX_LINKID_TEXT + 1) * sizeof(WCHAR)); - if(!Item->szID) - { - ERR("Unable to allocate memory for link id\n"); - Ret = FALSE; - } + Free(di->u.Link.szID); } + + nc = min(lstrlenW(Item->szID), MAX_LINKID_TEXT - 1); + di->u.Link.szID = Alloc((nc + 1) * sizeof(WCHAR)); if(di->u.Link.szID) { - lstrcpynW(di->u.Link.szID, Item->szID, MAX_LINKID_TEXT + 1); + lstrcpynW(di->u.Link.szID, Item->szID, nc + 1); + } + else + { + ERR("Unable to allocate memory for link id\n"); + Ret = FALSE; } }
You should probably make sure that the new text has been allocated properly before freeing the old one, so that allocation errors don't cause the current contents to be lost. -- Alexandre Julliard julliard(a)winehq.org
participants (1)
-
Alexandre Julliard