From bf2c9fd2fdff2760f3798fd1584f2da330266c46 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 24 Sep 2015 08:42:06 +0200 Subject: Guard against empty keys in QPlatformInputContextFactory::create(). The code relied on QStringList::split() returning a list consisting of one empty string when passing an enpty string. Add a check to prevent the plugin loader from trying to load in this case. Change-Id: Iadb418d32fdea1d472d6c00726ad039b4afbf409 Reviewed-by: Andy Shaw Reviewed-by: Lars Knoll --- src/gui/kernel/qplatforminputcontextfactory.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/gui/kernel/qplatforminputcontextfactory.cpp b/src/gui/kernel/qplatforminputcontextfactory.cpp index 9d55b778ce..fedf940dda 100644 --- a/src/gui/kernel/qplatforminputcontextfactory.cpp +++ b/src/gui/kernel/qplatforminputcontextfactory.cpp @@ -65,15 +65,17 @@ QString QPlatformInputContextFactory::requested() QPlatformInputContext *QPlatformInputContextFactory::create(const QString& key) { #if !defined(QT_NO_LIBRARY) && !defined(QT_NO_SETTINGS) - QStringList paramList = key.split(QLatin1Char(':')); - const QString platform = paramList.takeFirst().toLower(); + if (!key.isEmpty()) { + QStringList paramList = key.split(QLatin1Char(':')); + const QString platform = paramList.takeFirst().toLower(); - QPlatformInputContext *ic = qLoadPlugin1 - (loader(), platform, paramList); - if (ic && ic->isValid()) - return ic; + QPlatformInputContext *ic = qLoadPlugin1 + (loader(), platform, paramList); + if (ic && ic->isValid()) + return ic; - delete ic; + delete ic; + } #endif return 0; } -- cgit v1.2.3