From fb1cd96ffb1575f4032d95f723d89c43c4884dc4 Mon Sep 17 00:00:00 2001 From: Radoslaw Pajak Date: Tue, 10 Dec 2013 15:53:13 +0100 Subject: [PATCH] Kdbus upstream merge in progress Fixed segfault when ListNames is called, but the method is still not working propoerly (returns nothing). Change-Id: I1c55b8efb99ba540e6547c0f0b2d5f713d385f98 Signed-off-by: Radoslaw Pajak --- bus/kdbus-d.c | 5 ++++- dbus/kdbus-common.c | 1 - dbus/kdbus-common.h | 1 - 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bus/kdbus-d.c b/bus/kdbus-d.c index 2fdf587..e874b43 100644 --- a/bus/kdbus-d.c +++ b/bus/kdbus-d.c @@ -564,7 +564,7 @@ dbus_bool_t kdbus_list_services (DBusConnection* connection, char ***listp, int cmd.flags = KDBUS_NAME_LIST_NAMES; //TODO add handling | KDBUS_NAME_LIST_UNIQUE; again: - if(ioctl(fd, KDBUS_CMD_NAME_LIST, cmd)) + if(ioctl(fd, KDBUS_CMD_NAME_LIST, &cmd)) { if(errno == EINTR) goto again; @@ -580,6 +580,9 @@ again: for (name = name_list->names; (uint8_t *)(name) < (uint8_t *)(name_list) + name_list->size; name = KDBUS_PART_NEXT(name)) list_len++; + _dbus_verbose ("Name list size: %llu\n", name_list->size); + _dbus_verbose ("List len: %d\n", list_len); + list = malloc(sizeof(char*) * (list_len + 1)); if(list == NULL) goto out; diff --git a/dbus/kdbus-common.c b/dbus/kdbus-common.c index 2334ba7..d11edda 100644 --- a/dbus/kdbus-common.c +++ b/dbus/kdbus-common.c @@ -174,7 +174,6 @@ int request_kdbus_name(int fd, const char *name, const __u64 flags, __u64 id) cmd_name->flags = flags_kdbus; cmd_name->id = id; - // cmd_name->conn_flags = 0; _dbus_verbose("Request name - flags sent: 0x%llx !!!!!!!!!\n", cmd_name->flags); diff --git a/dbus/kdbus-common.h b/dbus/kdbus-common.h index 656b25f..9958dd5 100644 --- a/dbus/kdbus-common.h +++ b/dbus/kdbus-common.h @@ -36,7 +36,6 @@ (typeof(part))(((uint8_t *)part) + KDBUS_ALIGN8((part)->size)) #define KDBUS_MSG_MAX_PAYLOAD_VEC_SIZE 0x00800000 /* maximum size of message header and items */ #define KDBUS_PART_HEADER_SIZE offsetof(struct kdbus_item, data) - #define KDBUS_PART_SIZE(s) KDBUS_ALIGN8((s) + KDBUS_PART_HEADER_SIZE) //todo restore if DBus policy will be applied in kdbus somehow -- 2.7.4