From 4edc105da331ca503a61837ec57fa87f04e53bdd Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 20 Apr 2016 07:45:09 +0200 Subject: [PATCH] Editor: Check if text codec pointer is valid. Fixes a crash when collecting codecs for opions page and a unsupported icu is used. Task-number: QTCREATORBUG-16114 Change-Id: I4081748f636602670e37465750862d4da4a14941 Reviewed-by: Eike Ziller --- src/plugins/texteditor/behaviorsettingswidget.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/plugins/texteditor/behaviorsettingswidget.cpp b/src/plugins/texteditor/behaviorsettingswidget.cpp index f3410915e45..718ea5e6e94 100644 --- a/src/plugins/texteditor/behaviorsettingswidget.cpp +++ b/src/plugins/texteditor/behaviorsettingswidget.cpp @@ -63,14 +63,15 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent) if (firstNonNegative != mibs.end()) std::rotate(mibs.begin(), firstNonNegative, mibs.end()); foreach (int mib, mibs) { - QTextCodec *codec = QTextCodec::codecForMib(mib); - QString compoundName = QLatin1String(codec->name()); - foreach (const QByteArray &alias, codec->aliases()) { - compoundName += QLatin1String(" / "); - compoundName += QString::fromLatin1(alias); + if (QTextCodec *codec = QTextCodec::codecForMib(mib)) { + QString compoundName = QLatin1String(codec->name()); + foreach (const QByteArray &alias, codec->aliases()) { + compoundName += QLatin1String(" / "); + compoundName += QString::fromLatin1(alias); + } + d->m_ui.encodingBox->addItem(compoundName); + d->m_codecs.append(codec); } - d->m_ui.encodingBox->addItem(compoundName); - d->m_codecs.append(codec); } // Qt5 doesn't list the system locale (QTBUG-34283), so add it manually