diff options
Diffstat (limited to 'src/dbus-common.c')
-rw-r--r-- | src/dbus-common.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/dbus-common.c b/src/dbus-common.c index 2905ac3c83..fc97108e95 100644 --- a/src/dbus-common.c +++ b/src/dbus-common.c @@ -402,6 +402,7 @@ get_prop: const BusProperty *p; DBusMessageIter sub; char *sig; + void *data; if (!dbus_message_iter_init(message, &iter) || dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_STRING) @@ -456,7 +457,10 @@ set_prop: dbus_free(sig); - r = p->set(&sub, property); + data = (char*)bp->base + p->offset; + if (p->indirect) + data = *(void**)data; + r = p->set(&sub, property, data); if (r < 0) { if (r == -ENOMEM) goto oom; |