summaryrefslogtreecommitdiff
path: root/src/libsystemd-bus/bus-kernel.c
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2013-05-12 20:11:03 +0200
committerKay Sievers <kay@vrfy.org>2013-05-12 20:17:47 +0200
commit18cd014f13cb988037acc16f8150b8f6d7042cd5 (patch)
tree9ef541a0a5fff67a47c25c359dd013417361d28a /src/libsystemd-bus/bus-kernel.c
parent9d995d54b54dcf9c776a0d88edad3b6aab3c36b5 (diff)
bus: remove KDBUS_MAKE_ACCESS_WORLD, remove (n_payload > 2) check
KDBUS_MAKE_ACCESS_WORLD is no longer needed, the kernel creates the kdbus device node with the uid/gid of the caller now.
Diffstat (limited to 'src/libsystemd-bus/bus-kernel.c')
-rw-r--r--src/libsystemd-bus/bus-kernel.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c
index 3fb5822a8f..e329b14be8 100644
--- a/src/libsystemd-bus/bus-kernel.c
+++ b/src/libsystemd-bus/bus-kernel.c
@@ -72,7 +72,7 @@ static void append_payload_vec(struct kdbus_item **d, const void *p, size_t sz)
(*d)->size = offsetof(struct kdbus_item, vec) + sizeof(struct kdbus_vec);
(*d)->type = KDBUS_MSG_PAYLOAD_VEC;
- (*d)->vec.address = (intptr_t) p;
+ (*d)->vec.address = (uint64_t) p;
(*d)->vec.size = sz;
*d = (struct kdbus_item *) ((uint8_t*) *d + (*d)->size);
@@ -436,7 +436,7 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k, sd_bus_mess
if (d->vec.size < sizeof(struct bus_header))
return -EBADMSG;
- h = (struct bus_header*) d->vec.address;
+ h = (struct bus_header*)(uintptr_t) d->vec.address;
}
n_payload++;
@@ -471,8 +471,8 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k, sd_bus_mess
if (n_bytes != total)
return -EBADMSG;
- if (n_payload > 2)
- return -EBADMSG;
+ //if (n_payload > 2)
+ // return -EBADMSG;
r = bus_message_from_header(h, sizeof(struct bus_header), fds, n_fds, NULL, seclabel, 0, &m);
if (r < 0)
@@ -485,8 +485,10 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k, sd_bus_mess
if (d->type == KDBUS_MSG_PAYLOAD_VEC) {
- range_contains(idx, d->vec.size, ALIGN8(sizeof(struct bus_header)), BUS_MESSAGE_FIELDS_SIZE(m), (void*) d->vec.address, &m->fields);
- range_contains(idx, d->vec.size, ALIGN8(sizeof(struct bus_header)) + ALIGN8(BUS_MESSAGE_FIELDS_SIZE(m)), BUS_MESSAGE_BODY_SIZE(m), (void*) d->vec.address, &m->body);
+ range_contains(idx, d->vec.size, ALIGN8(sizeof(struct bus_header)), BUS_MESSAGE_FIELDS_SIZE(m),
+ (void *)(uintptr_t) d->vec.address, &m->fields);
+ range_contains(idx, d->vec.size, ALIGN8(sizeof(struct bus_header)) + ALIGN8(BUS_MESSAGE_FIELDS_SIZE(m)),
+ BUS_MESSAGE_BODY_SIZE(m), (void *)(uintptr_t) d->vec.address, &m->body);
idx += d->vec.size;
@@ -624,7 +626,7 @@ int bus_kernel_create(const char *name, char **s) {
n->size = KDBUS_ITEM_HEADER_SIZE + strlen(n->str) + 1;
make->size = offsetof(struct kdbus_cmd_bus_make, items) + cg->size + n->size;
- make->flags = KDBUS_MAKE_ACCESS_WORLD | KDBUS_MAKE_POLICY_OPEN;
+ make->flags = KDBUS_MAKE_POLICY_OPEN;
make->bus_flags = 0;
make->bloom_size = BLOOM_SIZE;
assert_cc(BLOOM_SIZE % 8 == 0);