Piotr Caban : comctl32: Don' t use uninitialized LVITEM fields in LISTVIEW_InsertItemT when LVS_EX_CHECKBOXES was specified.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Oct 7 10:00:48 CDT 2015
Module: wine
Branch: master
Commit: 9c87c7e76dbb860884308c7f609fb3588d3e686d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9c87c7e76dbb860884308c7f609fb3588d3e686d
Author: Piotr Caban <piotr at codeweavers.com>
Date: Wed Oct 7 10:17:14 2015 +0200
comctl32: Don't use uninitialized LVITEM fields in LISTVIEW_InsertItemT when LVS_EX_CHECKBOXES was specified.
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
---
dlls/comctl32/listview.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index c0956ad..a76935a 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -7851,10 +7851,18 @@ static INT LISTVIEW_InsertItemT(LISTVIEW_INFO *infoPtr, const LVITEMW *lpLVItem,
item.iItem = nItem;
if (infoPtr->dwLvExStyle & LVS_EX_CHECKBOXES)
{
- item.mask |= LVIF_STATE;
- item.stateMask |= LVIS_STATEIMAGEMASK;
- item.state &= ~LVIS_STATEIMAGEMASK;
- item.state |= INDEXTOSTATEIMAGEMASK(1);
+ if (item.mask & LVIF_STATE)
+ {
+ item.stateMask |= LVIS_STATEIMAGEMASK;
+ item.state &= ~LVIS_STATEIMAGEMASK;
+ item.state |= INDEXTOSTATEIMAGEMASK(1);
+ }
+ else
+ {
+ item.mask |= LVIF_STATE;
+ item.stateMask = LVIS_STATEIMAGEMASK;
+ item.state = INDEXTOSTATEIMAGEMASK(1);
+ }
}
if (!set_main_item(infoPtr, &item, TRUE, isW, &has_changed)) goto undo;
More information about the wine-cvs
mailing list