Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73b8ed29 authored by Cyrill V. Gorcunov's avatar Cyrill V. Gorcunov Committed by Linus Torvalds
Browse files

[PATCH] qconf: fix SIGSEGV on empty menu items



qconf may cause SIGSEGV by trying to show debug information on empty menu
items

Signed-off-by: default avatarCyrill V. Gorcunov <gorcunov@gmail.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f2e12bb2
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -925,6 +925,8 @@ ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name)
		configSettings->endGroup();
		configSettings->endGroup();
		connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings()));
		connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings()));
	}
	}

	has_dbg_info = 0;
}
}


void ConfigInfoView::saveSettings(void)
void ConfigInfoView::saveSettings(void)
@@ -953,11 +955,14 @@ void ConfigInfoView::setInfo(struct menu *m)
	if (menu == m)
	if (menu == m)
		return;
		return;
	menu = m;
	menu = m;
	if (!menu)
	if (!menu) {
		has_dbg_info = 0;
		clear();
		clear();
	else
	} else {
		has_dbg_info = 1;
		menuInfo();
		menuInfo();
       }
       }
}


void ConfigInfoView::setSource(const QString& name)
void ConfigInfoView::setSource(const QString& name)
{
{
@@ -991,6 +996,9 @@ void ConfigInfoView::symbolInfo(void)
{
{
	QString str;
	QString str;


	if (!has_dbg_info)
		return;

	str += "<big>Symbol: <b>";
	str += "<big>Symbol: <b>";
	str += print_filter(sym->name);
	str += print_filter(sym->name);
	str += "</b></big><br><br>value: ";
	str += "</b></big><br><br>value: ";
+2 −0
Original line number Original line Diff line number Diff line
@@ -273,6 +273,8 @@ public slots:
	struct symbol *sym;
	struct symbol *sym;
	struct menu *menu;
	struct menu *menu;
	bool _showDebug;
	bool _showDebug;

	int has_dbg_info;
};
};


class ConfigSearchWindow : public QDialog {
class ConfigSearchWindow : public QDialog {