There is no reason to assume the information returned by KDBUS_CMD_LIST contains only a single KDBUS_ITEM_OWNED_NAME. Parse each of them properly and don't bail out early.
Reviewed-by: Daniel Mack <dan...@zonque.org> Signed-off-by: David Herrmann <dh.herrm...@gmail.com> --- tools/testing/selftests/kdbus/kdbus-util.c | 9 +++++---- tools/testing/selftests/kdbus/test-names.c | 17 +++++++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/kdbus/kdbus-util.c b/tools/testing/selftests/kdbus/kdbus-util.c index a5e54ca..82fa89b 100644 --- a/tools/testing/selftests/kdbus/kdbus-util.c +++ b/tools/testing/selftests/kdbus/kdbus-util.c @@ -1155,11 +1155,12 @@ int kdbus_list(struct kdbus_conn *conn, uint64_t flags) if (item->type == KDBUS_ITEM_OWNED_NAME) { n = item->name.name; flags = item->name.flags; - } - kdbus_printf("%8llu flags=0x%08llx conn=0x%08llx '%s'\n", - name->id, (unsigned long long) flags, - name->flags, n); + kdbus_printf("%8llu flags=0x%08llx conn=0x%08llx '%s'\n", + name->id, + (unsigned long long) flags, + name->flags, n); + } } kdbus_printf("\n"); diff --git a/tools/testing/selftests/kdbus/test-names.c b/tools/testing/selftests/kdbus/test-names.c index 66ebb47..fd4ac5a 100644 --- a/tools/testing/selftests/kdbus/test-names.c +++ b/tools/testing/selftests/kdbus/test-names.c @@ -35,15 +35,20 @@ static int conn_is_name_owner(const struct kdbus_conn *conn, struct kdbus_item *item; const char *n = NULL; - KDBUS_ITEM_FOREACH(item, name, items) - if (item->type == KDBUS_ITEM_OWNED_NAME) + KDBUS_ITEM_FOREACH(item, name, items) { + if (item->type == KDBUS_ITEM_OWNED_NAME) { n = item->name.name; - if (name->id == conn->id && - n && strcmp(needle, n) == 0) { - found = true; - break; + if (name->id == conn->id && + n && strcmp(needle, n) == 0) { + found = true; + break; + } + } } + + if (found) + break; } ret = kdbus_free(conn, cmd_list.offset); -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/