From 0f6799658c90e04b4d19886049c95d43ad2fbb0b Mon Sep 17 00:00:00 2001 From: treectrl Date: Wed, 3 Oct 2007 23:01:46 +0000 Subject: Check for potential NULL pointer in TreeTheme_ThemeChanged. [BUG 1805700] --- generic/tkTreeTheme.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/generic/tkTreeTheme.c b/generic/tkTreeTheme.c index de81c6a..6c1a1f6 100644 --- a/generic/tkTreeTheme.c +++ b/generic/tkTreeTheme.c @@ -5,7 +5,7 @@ * * Copyright (c) 2006 Tim Baker * - * RCS: @(#) $Id: tkTreeTheme.c,v 1.20 2007/02/06 22:34:05 treectrl Exp $ + * RCS: @(#) $Id: tkTreeTheme.c,v 1.21 2007/10/03 23:01:46 treectrl Exp $ */ #ifdef WIN32 @@ -686,18 +686,23 @@ void TreeTheme_ThemeChanged(TreeCtrl *tree) Window win = Tk_WindowId(tree->tkwin); HWND hwnd = Tk_GetHWND(win); - if (tree->themeData->hThemeHEADER != NULL) { - procs->CloseThemeData(tree->themeData->hThemeHEADER); - tree->themeData->hThemeHEADER = NULL; - } - if (tree->themeData->hThemeTREEVIEW != NULL) { - procs->CloseThemeData(tree->themeData->hThemeTREEVIEW); - tree->themeData->hThemeTREEVIEW = NULL; + if (tree->themeData != NULL) { + if (tree->themeData->hThemeHEADER != NULL) { + procs->CloseThemeData(tree->themeData->hThemeHEADER); + tree->themeData->hThemeHEADER = NULL; + } + if (tree->themeData->hThemeTREEVIEW != NULL) { + procs->CloseThemeData(tree->themeData->hThemeTREEVIEW); + tree->themeData->hThemeTREEVIEW = NULL; + } } if (!appThemeData->themeEnabled || !procs) return; + if (tree->themeData == NULL) + tree->themeData = (TreeThemeData) ckalloc(sizeof(TreeThemeData_)); + tree->themeData->hThemeHEADER = procs->OpenThemeData(hwnd, L"HEADER"); tree->themeData->hThemeTREEVIEW = procs->OpenThemeData(hwnd, L"TREEVIEW"); } -- cgit v0.12