qconf may cause SIGSEGV by trying to show debug information on empty menu items
Showing the changes to scripts (2 of 2 files). Show all
Unified · Split
| @@ -925,6 +925,8 @@ ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) · 924 unmodified lines | |||
| 925 | configSettings->endGroup(); | 925 | configSettings->endGroup(); |
| 926 | connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); | 926 | connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings())); |
| 927 | } | 927 | } |
| 928 | |||
| 929 | has_dbg_info = 0; | ||
| 928 | } | 930 | } |
| 929 | 931 | ||
| 930 | void ConfigInfoView::saveSettings(void) | 932 | void ConfigInfoView::saveSettings(void) |
| @@ -953,10 +955,13 @@ void ConfigInfoView::setInfo(struct menu *m) · 22 unmodified lines | |||
| 953 | if (menu == m) | 955 | if (menu == m) |
| 954 | return; | 956 | return; |
| 955 | menu = m; | 957 | menu = m; |
| 956 | if (!menu) | 958 | if (!menu) { |
| 959 | has_dbg_info = 0; | ||
| 957 | clear(); | 960 | clear(); |
| 958 | else | 961 | } else { |
| 962 | has_dbg_info = 1; | ||
| 959 | menuInfo(); | 963 | menuInfo(); |
| 964 | } | ||
| 960 | } | 965 | } |
| 961 | 966 | ||
| 962 | void ConfigInfoView::setSource(const QString& name) | 967 | void ConfigInfoView::setSource(const QString& name) |
| @@ -991,6 +996,9 @@ void ConfigInfoView::symbolInfo(void) · 28 unmodified lines | |||
| 991 | { | 996 | { |
| 992 | QString str; | 997 | QString str; |
| 993 | 998 | ||
| 999 | if (!has_dbg_info) | ||
| 1000 | return; | ||
| 1001 | |||
| 994 | str += "<big>Symbol: <b>"; | 1002 | str += "<big>Symbol: <b>"; |
| 995 | str += print_filter(sym->name); | 1003 | str += print_filter(sym->name); |
| 996 | str += "</b></big><br><br>value: "; | 1004 | str += "</b></big><br><br>value: "; |
| @@ -273,6 +273,8 @@ protected: · 272 unmodified lines | |||
| 273 | struct symbol *sym; | 273 | struct symbol *sym; |
| 274 | struct menu *menu; | 274 | struct menu *menu; |
| 275 | bool _showDebug; | 275 | bool _showDebug; |
| 276 | |||
| 277 | int has_dbg_info; | ||
| 276 | }; | 278 | }; |
| 277 | 279 | ||
| 278 | class ConfigSearchWindow : public QDialog { | 280 | class ConfigSearchWindow : public QDialog { |