Fix crash in QDBusDemarshaller basic string-like type extraction
authorSami Rosendahl <ext-sami.1.rosendahl@nokia.com>
Tue, 17 Jan 2012 11:37:35 +0000 (13:37 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 25 Jan 2012 12:29:00 +0000 (13:29 +0100)
commit03905f771b23b1e6d33e6b42811b8b5e915c9d8f
treefa1f809131c6318b9ef965c66a08493a888ec6e0
parentb34d903466a34668973030341e2f12d2b481ed58
Fix crash in QDBusDemarshaller basic string-like type extraction

QDBusArgument string extraction operators and QDBusDemarshaller that
implements the extraction do not check the type of the extracted value.
When extracting string-like basic DBus type that actually is e.g. an
integer the string extraction will crash as it blindly attempts to use the
integer as a pointer to char.

The fix adds DBus type checks to QDBusArgument string type extraction
operator implementations.
The checks are as permissive as possible provided crashes are avoided.
Previously supported functionality of extracting an object path or type
signature to a string type is retained.

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