From 87ca1b94165275e045de109fc33fcf15bab84b83 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Mon, 10 Nov 2008 20:39:29 -0800 Subject: [PATCH] comctl32: Check for NULL input in TAB_AdjustRect. --- dlls/comctl32/tab.c | 2 ++ dlls/comctl32/tests/tab.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c index 0afcc77a2a8..6a9b8e85dc2 100644 --- a/dlls/comctl32/tab.c +++ b/dlls/comctl32/tab.c @@ -863,6 +863,8 @@ static LRESULT TAB_AdjustRect(const TAB_INFO *infoPtr, WPARAM fLarger, LPRECT pr TRACE ("hwnd=%p fLarger=%ld (%s)\n", infoPtr->hwnd, fLarger, wine_dbgstr_rect(prc)); + if (!prc) return -1; + if(lStyle & TCS_VERTICAL) { iRightBottom = &(prc->right); diff --git a/dlls/comctl32/tests/tab.c b/dlls/comctl32/tests/tab.c index bd4919d017b..9d98e113fb9 100644 --- a/dlls/comctl32/tests/tab.c +++ b/dlls/comctl32/tests/tab.c @@ -856,6 +856,22 @@ static void test_getters_setters(HWND parent_wnd, INT nTabs) DestroyWindow(hTab); } +static void test_adjustrect(HWND parent_wnd) +{ + HWND hTab; + INT r; + + ok(parent_wnd != NULL, "no parent window!\n"); + + hTab = createFilledTabControl(parent_wnd, TCS_FIXEDWIDTH, 0, 0); + ok(hTab != NULL, "Failed to create tab control\n"); + + r = SendMessage(hTab, TCM_ADJUSTRECT, FALSE, 0); + expect(-1, r); + + r = SendMessage(hTab, TCM_ADJUSTRECT, TRUE, 0); + expect(-1, r); +} static void test_insert_focus(HWND parent_wnd) { HWND hTab; @@ -1001,6 +1017,8 @@ START_TEST(tab) /* Testing getters and setters with 5 tabs */ test_getters_setters(parent_wnd, 5); + test_adjustrect(parent_wnd); + test_insert_focus(parent_wnd); test_delete_focus(parent_wnd);