Fix crash in QDBusDemarshaller QStringList extraction
authorSami Rosendahl <ext-sami.1.rosendahl@nokia.com>
Tue, 17 Jan 2012 11:41:20 +0000 (13:41 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 25 Jan 2012 12:29:00 +0000 (13:29 +0100)
commitd1cd17713e6d0bd9c7a270ba675704ad244e2b13
tree9531b7bd9c8b50ba1c52a9f4c47a0711cb4e2b16
parent03905f771b23b1e6d33e6b42811b8b5e915c9d8f
Fix crash in QDBusDemarshaller QStringList extraction

QDBusArgument QStringList extraction operator and QDBusDemarshaller that
implements the extraction do not check the type of the extracted value.
When extracting a QStringList and the value actually is e.g. an array of
bytes the string list extraction will crash as it interprets the bytes as
char pointers.

The fix adds DBus type checks to QDBusArgument QStringList extraction
operator implementations.
The checks are as permissive as possible provided crashes are avoided.

Task-number: QTBUG-22840
Change-Id: I83a98097a7cf36f8448afba81d0ad619cdf864e3
(From Qt5 commit b4398dc4e372dbe829b21423e1a0a93a6a542994)
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/dbus/qdbusargument_p.h
src/dbus/qdbusdemarshaller.cpp
tests/auto/qdbusmarshall/tst_qdbusmarshall.cpp