From: Roman Zippel Date: Thu, 11 Jan 2007 07:15:31 +0000 (-0800) Subject: [PATCH] qconf: (re)fix SIGSEGV on empty menu items X-Git-Tag: v2.6.20-rc5~19 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fa1da8ea9318af6a0252f56cd2e689616346218;p=linux-2.6 [PATCH] qconf: (re)fix SIGSEGV on empty menu items Back out the recent fix for this bug, fix it by correctly initialising ConfigInfoView.sym. Signed-off-by: Roman Zippel Cc: "Cyrill V. Gorcunov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc index a8ffc32966..c0ae0a7ddb 100644 --- a/scripts/kconfig/qconf.cc +++ b/scripts/kconfig/qconf.cc @@ -917,7 +917,7 @@ void ConfigView::updateListAll(void) } ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) - : Parent(parent, name), menu(0) + : Parent(parent, name), menu(0), sym(0) { if (name) { configSettings->beginGroup(name); @@ -925,8 +925,6 @@ ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) configSettings->endGroup(); connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); } - - has_dbg_info = 0; } void ConfigInfoView::saveSettings(void) @@ -955,13 +953,11 @@ void ConfigInfoView::setInfo(struct menu *m) if (menu == m) return; menu = m; - if (!menu) { - has_dbg_info = 0; + sym = NULL; + if (!menu) clear(); - } else { - has_dbg_info = 1; + else menuInfo(); - } } void ConfigInfoView::setSource(const QString& name) @@ -996,9 +992,6 @@ void ConfigInfoView::symbolInfo(void) { QString str; - if (!has_dbg_info) - return; - str += "Symbol: "; str += print_filter(sym->name); str += "

value: "; diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h index a397edb5ad..6fc1c5f144 100644 --- a/scripts/kconfig/qconf.h +++ b/scripts/kconfig/qconf.h @@ -273,8 +273,6 @@ protected: struct symbol *sym; struct menu *menu; bool _showDebug; - - int has_dbg_info; }; class ConfigSearchWindow : public QDialog {