Nikolay Sivov : comctl32/tab: Fix reading out of array bounds on TCM_SETCURSEL.
Alexandre Julliard
julliard at winehq.org
Fri Nov 20 10:48:04 CST 2009
Module: wine
Branch: master
Commit: 3371ba9f73367572693589905ed57af87b747b54
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3371ba9f73367572693589905ed57af87b747b54
Author: Nikolay Sivov <bunglehead at gmail.com>
Date: Thu Nov 19 21:05:14 2009 +0300
comctl32/tab: Fix reading out of array bounds on TCM_SETCURSEL.
---
dlls/comctl32/tab.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c
index 15534af..f8f9f5c 100644
--- a/dlls/comctl32/tab.c
+++ b/dlls/comctl32/tab.c
@@ -247,16 +247,17 @@ static inline LRESULT TAB_SetCurSel (TAB_INFO *infoPtr, INT iItem)
TRACE("(%p %d)\n", infoPtr, iItem);
if (iItem < 0)
- infoPtr->iSelected=-1;
+ infoPtr->iSelected = -1;
else if (iItem >= infoPtr->uNumItem)
return -1;
else {
- if (infoPtr->iSelected != iItem) {
- TAB_GetItem(infoPtr, prevItem)->dwState &= ~TCIS_BUTTONPRESSED;
+ if (prevItem != iItem) {
+ if (prevItem != -1)
+ TAB_GetItem(infoPtr, prevItem)->dwState &= ~TCIS_BUTTONPRESSED;
TAB_GetItem(infoPtr, iItem)->dwState |= TCIS_BUTTONPRESSED;
- infoPtr->iSelected=iItem;
- infoPtr->uFocus=iItem;
+ infoPtr->iSelected = iItem;
+ infoPtr->uFocus = iItem;
TAB_EnsureSelectionVisible(infoPtr);
TAB_InvalidateTabArea(infoPtr);
}
More information about the wine-cvs
mailing list