summaryrefslogtreecommitdiffstats
path: root/tqdbusmarshall.cpp
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2014-01-30 02:31:39 +0100
committerSlávek Banko <slavek.banko@axis.cz>2014-01-30 02:31:39 +0100
commit89be80257477233dbda99a22d5afb560898b513e (patch)
tree44f088b28ca54f70e49ab4134f61214d81a7b34f /tqdbusmarshall.cpp
parentecbec64293a34e58844d132fbc83dcc0072c3d2f (diff)
downloaddbus-1-tqt-89be80257477233dbda99a22d5afb560898b513e.tar.gz
dbus-1-tqt-89be80257477233dbda99a22d5afb560898b513e.zip
Fix duplication UnixFD during demarshall
Fix uninitialized UnixFD private data
Diffstat (limited to 'tqdbusmarshall.cpp')
-rw-r--r--tqdbusmarshall.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/tqdbusmarshall.cpp b/tqdbusmarshall.cpp
index f4aa5f7..7c21619 100644
--- a/tqdbusmarshall.cpp
+++ b/tqdbusmarshall.cpp
@@ -599,8 +599,11 @@ static TQT_DBusData qFetchParameter(DBusMessageIter *it)
return TQT_DBusData::fromStruct(memberList);
}
- case DBUS_TYPE_UNIX_FD:
- return TQT_DBusData::fromUnixFd(TQT_DBusUnixFd(qIterGet<dbus_uint32_t>(it)));
+ case DBUS_TYPE_UNIX_FD: {
+ TQT_DBusUnixFd unixFd;
+ unixFd.giveFileDescriptor(qIterGet<dbus_uint32_t>(it));
+ return TQT_DBusData::fromUnixFd(unixFd);
+ }
#if 0
case DBUS_TYPE_INVALID:
// TODO: check if there is better way to detect empty arrays