Fix crash in QDBusDemarshaller basic string-like type extraction
authorSami Rosendahl <ext-sami.1.rosendahl@nokia.com>
Fri, 25 Nov 2011 09:13:46 +0000 (11:13 +0200)
committerQt by Nokia <qt-info@nokia.com>
Sun, 25 Dec 2011 20:58:57 +0000 (21:58 +0100)
commit8f19f142745f3cb0690dcd51cebc66153e396805
tree0fd9ef9ae9c0d53eafd25525fced783d45622ce2
parentbca775edaa22f383f319aae72799b6cb61bce48c
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: I29be1ae592658ca268c65ed692e1d42619d52280
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/dbus/qdbusargument_p.h
src/dbus/qdbusdemarshaller.cpp
tests/auto/dbus/qdbusmarshall/tst_qdbusmarshall.cpp