Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755099AbbHFIWS (ORCPT ); Thu, 6 Aug 2015 04:22:18 -0400 Received: from mail-wi0-f178.google.com ([209.85.212.178]:35197 "EHLO mail-wi0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754995AbbHFIWE (ORCPT ); Thu, 6 Aug 2015 04:22:04 -0400 From: David Herrmann To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , Daniel Mack , Djalal Harouni , David Herrmann Subject: [PATCH 9/9] kdbus/tests: properly parse KDBUS_CMD_LIST objects Date: Thu, 6 Aug 2015 10:21:28 +0200 Message-Id: <1438849288-18112-10-git-send-email-dh.herrmann@gmail.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1438849288-18112-1-git-send-email-dh.herrmann@gmail.com> References: <1438849288-18112-1-git-send-email-dh.herrmann@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2318 Lines: 71 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 Signed-off-by: David Herrmann --- 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/