assert(p);
assert(sz > 0);
+ *d = ALIGN8_PTR(*d);
+
(*d)->size = offsetof(struct kdbus_msg_data, vec) + sizeof(struct kdbus_vec);
(*d)->type = KDBUS_MSG_PAYLOAD_VEC;
(*d)->vec.address = (uint64_t) p;
(*d)->vec.size = sz;
- *d = (struct kdbus_msg_data*) ((uint8_t*) *d + ALIGN8((*d)->size));
+ *d = (struct kdbus_msg_data*) ((uint8_t*) *d + (*d)->size);
}
static void append_destination(struct kdbus_msg_data **d, const char *s, size_t length) {
assert(d);
assert(d);
+ *d = ALIGN8_PTR(*d);
+
(*d)->size = offsetof(struct kdbus_msg_data, str) + length + 1;
(*d)->type = KDBUS_MSG_DST_NAME;
memcpy((*d)->str, s, length + 1);
- *d = (struct kdbus_msg_data*) ((uint8_t*) *d + ALIGN8((*d)->size));
+ *d = (struct kdbus_msg_data*) ((uint8_t*) *d + (*d)->size);
}
static int bus_message_setup_kmsg(sd_bus_message *m) {
if (!m->kdbus)
return -ENOMEM;
+ memset(m->kdbus, 0, sz);
+
m->kdbus->flags =
((m->header->flags & SD_BUS_MESSAGE_NO_REPLY_EXPECTED) ? 0 : KDBUS_MSG_FLAGS_EXPECT_REPLY) |
((m->header->flags & SD_BUS_MESSAGE_NO_AUTO_START) ? KDBUS_MSG_FLAGS_NO_AUTO_START : 0);