X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-bus%2Fbus-control.c;h=5a052d455eb425dd50e0adefb22b40b3a22ff6c4;hp=39f4fc83a7dd19e4fe098652d87398cd12124539;hb=5ebe2ce782a5f4614b3381ba093cbebded3d3ce6;hpb=e0104622b33f39ea8fd54f0a286d938401c08e3d diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c index 39f4fc83a..5a052d455 100644 --- a/src/libsystemd/sd-bus/bus-control.c +++ b/src/libsystemd/sd-bus/bus-control.c @@ -495,8 +495,8 @@ static int bus_populate_creds_from_items(sd_bus *bus, SD_BUS_CREDS_INHERITABLE_CAPS | SD_BUS_CREDS_BOUNDING_CAPS) & mask; if (m) { - c->capability_size = item->size - KDBUS_ITEM_HEADER_SIZE; - c->capability = memdup(item->data, c->capability_size); + c->capability_size = item->size - offsetof(struct kdbus_item, caps.caps); + c->capability = memdup(item->caps.caps, c->capability_size); if (!c->capability) return -ENOMEM;