Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933270AbbFIVBX (ORCPT ); Tue, 9 Jun 2015 17:01:23 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:42489 "EHLO out4-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753812AbbFIVAf (ORCPT ); Tue, 9 Jun 2015 17:00:35 -0400 X-Sasl-enc: sR31poSGvtgQ3sKFr2iv03GikFBVX9fWlM1WuXH2aQ/Y 1433883634 From: Sergei Zviagintsev To: Greg Kroah-Hartman , Daniel Mack , David Herrmann , Djalal Harouni Cc: linux-kernel@vger.kernel.org, Sergei Zviagintsev Subject: [PATCH v2 06/10] selftests/kdbus: fix precedence issues in macros Date: Wed, 10 Jun 2015 00:00:04 +0300 Message-Id: <07f27eaed362e9baf92307d3a22198f80fcae197.1433882692.git.sergei@s15v.net> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2015 Lines: 55 `item' argument in KDBUS_ITEM_NEXT macro is not enclosed into parentheses when the cast operator is applied, which leads to improper type conversion if `item' is supplied as a complex expression, e.g. KDBUS_ITEM_NEXT(condition ? a : b) RUN_CLONE_CHILD macro has similar issue, missing parentheses around `clone_ret' when using indirection operator. Use parentheses properly to guarantee right precedence. Signed-off-by: Sergei Zviagintsev --- tools/testing/selftests/kdbus/kdbus-util.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/kdbus/kdbus-util.h b/tools/testing/selftests/kdbus/kdbus-util.h index b53b03f0565c..df5721ee8f54 100644 --- a/tools/testing/selftests/kdbus/kdbus-util.h +++ b/tools/testing/selftests/kdbus/kdbus-util.h @@ -27,7 +27,7 @@ #define KDBUS_ITEM_SIZE(s) KDBUS_ALIGN8((s) + KDBUS_ITEM_HEADER_SIZE) #define KDBUS_ITEM_NEXT(item) \ - (typeof(item))(((uint8_t *)item) + KDBUS_ALIGN8((item)->size)) + (typeof(item))((uint8_t *)(item) + KDBUS_ALIGN8((item)->size)) #define KDBUS_ITEM_FOREACH(item, head, first) \ for (item = (head)->first; \ ((uint8_t *)(item) < (uint8_t *)(head) + (head)->size) && \ @@ -104,7 +104,7 @@ extern int kdbus_util_verbose; _setup_; \ efd = eventfd(0, EFD_CLOEXEC); \ ASSERT_RETURN(efd >= 0); \ - *clone_ret = 0; \ + *(clone_ret) = 0; \ pid = syscall(__NR_clone, flags, NULL); \ if (pid == 0) { \ eventfd_t event_status = 0; \ @@ -129,7 +129,7 @@ extern int kdbus_util_verbose; ret = TEST_OK; \ } else { \ ret = -errno; \ - *clone_ret = -errno; \ + *(clone_ret) = -errno; \ } \ close(efd); \ ret; \ -- 1.8.3.1 -- 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/