[systemd-commits] src/libsystemd

Daniel Mack zonque at kemper.freedesktop.org
Fri Dec 5 01:05:36 PST 2014


 src/libsystemd/sd-bus/bus-kernel.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 840ceb897ff2b44275dcf2fe8227a750941789f0
Author: Daniel Mack <daniel at zonque.org>
Date:   Fri Dec 5 10:03:00 2014 +0100

    sd-bus: follow kdbus changes (ABI break)
    
    Implement a recent change in the kdbus pool logic:
    
    PAYLOAD_VEC_OFF items are now referencing offsets relative to the
    connection's pool, not to the item itself. Follow this change in
    sd-bus.

diff --git a/src/libsystemd/sd-bus/bus-kernel.c b/src/libsystemd/sd-bus/bus-kernel.c
index d81e9d2..3a809e4 100644
--- a/src/libsystemd/sd-bus/bus-kernel.c
+++ b/src/libsystemd/sd-bus/bus-kernel.c
@@ -422,7 +422,7 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
 
                 case KDBUS_ITEM_PAYLOAD_OFF:
                         if (!h) {
-                                h = (struct bus_header *)((uint8_t *)k + d->vec.offset);
+                                h = (struct bus_header *)((uint8_t *)bus->kdbus_buffer + d->vec.offset);
 
                                 if (!bus_header_is_complete(h, d->vec.size))
                                         return -EBADMSG;
@@ -514,11 +514,11 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
 
                                 if (idx >= begin_body) {
                                         if (!part->is_zero)
-                                                part->data = (uint8_t *)k + d->vec.offset;
+                                                part->data = (uint8_t *)bus->kdbus_buffer + d->vec.offset;
                                         part->size = d->vec.size;
                                 } else {
                                         if (!part->is_zero)
-                                                part->data = (uint8_t *)k + d->vec.offset + (begin_body - idx);
+                                                part->data = (uint8_t *)bus->kdbus_buffer + d->vec.offset + (begin_body - idx);
                                         part->size = d->vec.size - (begin_body - idx);
                                 }
 



More information about the systemd-commits mailing list