X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdbus-common.c;h=fc97108e9520fe5f99d90cec3da0fd1f8aaba225;hp=2905ac3c839b222b085d867dad974fc5c4821c7e;hb=9612f07cbf2b0ec54c5dc6ed7e521e181cc3612d;hpb=56bcbfa5f80ce6f1da5bb38e336b213be5ed0df0 diff --git a/src/dbus-common.c b/src/dbus-common.c index 2905ac3c8..fc97108e9 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;