From patchwork Fri Feb 26 19:24:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 1445068 X-Patchwork-Delegate: daniel@makrotopia.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.openwrt.org (client-ip=2001:8b0:10b:1231::1; helo=merlin.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=gpCIszhp; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=hWyEIQ2C; dkim-atps=neutral Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:8b0:10b:1231::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DnKTs1jpFz9sBJ for ; Sat, 27 Feb 2021 06:29:20 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=Uf2DlTcEFdzhqcRo1F6L/0ivpXL1FFfUGpO/vwNKs2Q=; b=gpCIszhpgCHai/0Hj0rhk95yft AKyHVCVmCGI3m5R1zSq/Matx/MgFf/M5HbdRukcx3qUpu2qMdIbaM7Zd46UA8VgoCemB7d7g/79ln xkSJNg2J12dlaEXXY7iZZ6wwkq7NiZFJij5rDo/+4ayvRkTb/5mtqOUCnts7TPUVtEXtGw544/HK0 cocnGXBFBMsVJdzYBeU6CnW5GNT1A6gVoBPvAnLxQa13CLSy+XEJplBRRrP0AiUGYILNfAXl3nCEl IAhWKurgt1evWbYUh10axvhYIyFgI3OUNWDR1JDwg38ZaIvM9AcU3jt7ESPXdHwrV9obRTZGFMyHB 0ydaVp0Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lFijL-0000Tc-30; Fri, 26 Feb 2021 19:24:51 +0000 Received: from mout.gmx.net ([212.227.17.22]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1lFijH-0000SR-Od for openwrt-devel@lists.openwrt.org; Fri, 26 Feb 2021 19:24:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1614367479; bh=8QN78w7LcuxEmwPnUG2x6PaXuaDOVfsWDu82Y7RSolI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=hWyEIQ2Cyu3if3r7y2GY8tEoQ/5crJdHfmQ9Avcn4p+Oqs3hwJ9uA4UEXWeOj7Ihc cJ08rBY7Cf5j74TVpAzFCcwzcQN/6x4lB7hwOj6BGNV3NH+cp6+pDfP6BeW1skmhhA fp73+qhzWHVXVtq/gyXDx56OgQwXU9Wj6RbAjL+4= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.fritz.box ([62.216.208.37]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MzQkK-1m2Cbn2yC8-00vRLY; Fri, 26 Feb 2021 20:24:39 +0100 From: Peter Seiderer To: openwrt-devel@lists.openwrt.org Subject: [PATCH v2] libubox: fix BLOBMSG_CAST_INT64 (do not override BLOBMSG_TYPE_DOUBLE) Date: Fri, 26 Feb 2021 20:24:20 +0100 Message-Id: <20210226192420.4553-1-ps.report@gmx.net> X-Mailer: git-send-email 2.30.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:995kb9a5z9ktgKpD6NzAs7r/+KOrwC6HZX5YbGu0JsrHbKhlp4f S1u7u1oEfVBn+dN/KC+aiCMJUcsSkHraXJxmBkHxQfqqX50qojR0J8Y6kC2KFmr/rdQfB1i lf8YEwe6BM0qH1rswF0X1UsgD2c3JkMcdABWvSeCMRl4ywtkpom1XYPpRkCVdhVP9apJ6A7 vimQ0ytYRE1QnN0rrNVLQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:2g/BBz2ogE0=:AHT3/+vCmFg7hPKywoBFCQ 2Fj8BnlMsQCiv3RiAlcgF/O+pfhZANqPMQduMZImwEY8JxG7bVJW2JZZe2eBazOhAYfSQqes4 YfoSXgq6KMKeppPc6Gs+FmeGAy3QcxRych/o+Lvm1U1EfVsig92Ae+yQbhTIFGl8UToKonZgO ynM6Jv59kNP4r/tBhEYI7+edz2uRX9gPtHuuzskR9pLQZNX9SvmBnTN2RSuODtlPsuvP3UPmO +HxOcOc40R+I2byeiOB/Kw/P0F+Nuuu03jWuJOIauwJBdGT0liptzxaufudziBbsKA0w31f5j SjdLbT2gvQsJN/qASI+mRrCkPbEZhb7TtCURfWH93EF7EpV7Xd9hEfQc3QFvI6/K2pX6tN7XI nhjO8Oz5eh211N9BbGk0M+4l9wMBkNd07tdO2qK0lATVR3jWTCFG8FZttabITNIz6p2b+vDuc SPtHJof6iteAU4+iLGIvMDj9OyZ589tGhj2VngR3UJ0wqhcqx0yz4WAHm9UQj99rcZkwy5jyE KtN9xUUgbxQrtqE/uSS6uInBCCuvyDcCJMF9N0IaeMaRIzOvAXI2zcsA3fLSncKjQt96TJLVA 8J21fhS9Qjf59+h/AKQlfiGRO301loSh7Rl2Wfz9WTsVWezX6eXzyaBzCEjQ2s7x5hVd1cT9c C43Tf2ol0YERLPRwnxawd03Y4XyAXe7BstGgmcl1ZUN54h811JSRS3p69kZTqVXGP289c/QRI XZZqv4PhmlKgtnUNOfN1bapv9E77keEDV+xp/6iCB8SdhtSEGm93X7qQDs9MkWOYUfyMAh4jj 3eNiqeUkZS09kz6L6Vc1lgUSS0gCY6PfPwYJU8hP+EafZYMAFprPrbk1Avayn4uFBToSe2bvt XrEfL6JoVJhmTtPuk9OQ== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210226_142448_096840_6F14F297 X-CRM114-Status: GOOD ( 13.11 ) X-Spam-Score: -0.1 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.1 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.17.22 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.17.22 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [ps.report[at]gmx.net] 0.0 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.8 UPPERCASE_50_75 message body is 50-75% uppercase X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Seiderer , Daniel Golle Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Commit 9e52171 ('blobmsg: introduce BLOBMSG_CAST_INT64') broke blobmsg_parse() for BLOBMSG_TYPE_DOUBLE. This is because the enum definition leads to the following double define for BLOBMSG_CAST_INT64/BLOBMSG_TYPE_DOUBLE as value 8. Tested with: $ cat test-enum-001.c #include enum blobmsg_type { BLOBMSG_TYPE_UNSPEC, BLOBMSG_TYPE_ARRAY, BLOBMSG_TYPE_TABLE, BLOBMSG_TYPE_STRING, BLOBMSG_TYPE_INT64, BLOBMSG_TYPE_INT32, BLOBMSG_TYPE_INT16, BLOBMSG_TYPE_INT8, BLOBMSG_TYPE_DOUBLE, __BLOBMSG_TYPE_LAST, BLOBMSG_TYPE_LAST = __BLOBMSG_TYPE_LAST - 1, BLOBMSG_TYPE_BOOL = BLOBMSG_TYPE_INT8, BLOBMSG_CAST_INT64, }; int main(int artc, char* argv[]) { printf("BLOBMSG_TYPE_UNSPEC: %d\n", BLOBMSG_TYPE_UNSPEC); printf("BLOBMSG_TYPE_ARRAY: %d\n", BLOBMSG_TYPE_ARRAY); printf("BLOBMSG_TYPE_TABLE: %d\n", BLOBMSG_TYPE_TABLE); printf("BLOBMSG_TYPE_STRING: %d\n", BLOBMSG_TYPE_STRING); printf("BLOBMSG_TYPE_INT64: %d\n", BLOBMSG_TYPE_INT64); printf("BLOBMSG_TYPE_INT32: %d\n", BLOBMSG_TYPE_INT32); printf("BLOBMSG_TYPE_INT16: %d\n", BLOBMSG_TYPE_INT16); printf("BLOBMSG_TYPE_INT8: %d\n", BLOBMSG_TYPE_INT8); printf("BLOBMSG_TYPE_DOUBLE: %d\n", BLOBMSG_TYPE_DOUBLE); printf("__BLOBMSG_TYPE_LAST: %d\n", __BLOBMSG_TYPE_LAST); printf("BLOBMSG_TYPE_LAST: %d\n", BLOBMSG_TYPE_LAST); printf("BLOBMSG_TYPE_BOOL: %d\n", BLOBMSG_TYPE_BOOL); printf("BLOBMSG_CAST_INT64: %d\n", BLOBMSG_CAST_INT64); return 0; } $ gcc test-enum-001.c $ ./a.out BLOBMSG_TYPE_UNSPEC: 0 BLOBMSG_TYPE_ARRAY: 1 BLOBMSG_TYPE_TABLE: 2 BLOBMSG_TYPE_STRING: 3 BLOBMSG_TYPE_INT64: 4 BLOBMSG_TYPE_INT32: 5 BLOBMSG_TYPE_INT16: 6 BLOBMSG_TYPE_INT8: 7 BLOBMSG_TYPE_DOUBLE: 8 __BLOBMSG_TYPE_LAST: 9 BLOBMSG_TYPE_LAST: 8 BLOBMSG_TYPE_BOOL: 7 BLOBMSG_CAST_INT64: 8 Fix this by changing the enum defintion to assign BLOBMSG_CAST_INT64 to the unique value 9. Signed-off-by: Peter Seiderer --- Changes v1 -> v2: - re-send after subscribing to the mailing list - change patch subject prefix from blobmsg to libubox --- blobmsg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blobmsg.h b/blobmsg.h index 4a151c7..1f0634d 100644 --- a/blobmsg.h +++ b/blobmsg.h @@ -31,11 +31,11 @@ enum blobmsg_type { BLOBMSG_TYPE_INT32, BLOBMSG_TYPE_INT16, BLOBMSG_TYPE_INT8, + BLOBMSG_TYPE_BOOL = BLOBMSG_TYPE_INT8, BLOBMSG_TYPE_DOUBLE, __BLOBMSG_TYPE_LAST, BLOBMSG_TYPE_LAST = __BLOBMSG_TYPE_LAST - 1, - BLOBMSG_TYPE_BOOL = BLOBMSG_TYPE_INT8, - BLOBMSG_CAST_INT64, + BLOBMSG_CAST_INT64 = __BLOBMSG_TYPE_LAST, }; struct blobmsg_hdr {