From patchwork Tue Jun 30 10:38:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karl Palsson X-Patchwork-Id: 1319739 X-Patchwork-Delegate: ynezz@true.cz 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; dmarc=none (p=none dis=none) header.from=etactica.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=merlin.20170209 header.b=y0jQwFV3; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=eTactica.onmicrosoft.com header.i=@eTactica.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-eTactica-onmicrosoft-com header.b=X9f5Tq2c; 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 49x1CK5J03z9s6w for ; Tue, 30 Jun 2020 20:42:37 +1000 (AEST) 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:References:In-Reply-To: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:List-Owner; bh=84MUoMRg9hj1DkztLZ0ei557Lk4tvl4gerq5POTx+Yo=; b=y0jQwFV3KPMe8ayVkYh1I5kvf yTbl5MlG4uezUm0ls72w2ujMbqYr9VZ++eLHY6SAkypi00nAElBf9krFGjk5qYGfftiQ496CjYltJ SjUojhklyvHLymovuZBmREPwVtiFwl2cvi1NWur2BncBfJ75VSq06U4HKTOO/4WUojvt3i+ZRRUFA H3hOJQ5fFldkMONvDqQ0sDpCco/derE68hl7AuoRnMYl5dKoUfj4L0DPTaPNtCd8ZjLW006Gy9YV1 6JSJ+0Xz/arHsTxwFiIT80Qiuoxxa2TZkV9NO5tQiga6rShaLKe+C3nc+jYUj3JeKvkaOPqS77Grq /abcCF5+A==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jqDfX-0007eT-4W; Tue, 30 Jun 2020 10:39:15 +0000 Received: from mail-am6eur05on2122.outbound.protection.outlook.com ([40.107.22.122] helo=EUR05-AM6-obe.outbound.protection.outlook.com) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jqDfT-0007dS-RG for openwrt-devel@lists.openwrt.org; Tue, 30 Jun 2020 10:39:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ciDS3PjuFuLIP/xCd37np7iNw4Io2fWf+LlOGmLvsJcT20psH28+7ZU36QtEx3hv41FtltOa3XwRqx31P6Hy40os4wkqLCf4aaBVvdtZLwSGVtm0DL8ZUgjMyfE2NXOgAiYJI4HWTr2cC0KzIkyXEgXAMYhtNBA6vqxw2/2n11lXLEUJjcK0xCnGRncXhn5alLuAzpqltsMzw3gW5UM7NGhDHq9ECeC3rMNRb4GlYICP6BediidYK1ReSJzTZsXVjBwkVqHAsVFAMLWzFL9Bef7tFpdeKIYLkOuU4XK3xpkKrxuVJ49ahuBabW1qg7okg5fPqm64xAdq21aSKJBmBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uA7TF4s3NosXj14MG3IC9Ah70mIBX/TRcSnGv7C/if4=; b=TIJaPZm6DLW+YFa5P9FoBZiUhfpX6mu3fvTchlcMrgRWUrltNGt7WXq5OyNBOsSg5c8NY0ssdq7BzMVsHriBGCDXd0SJFQX/rREEldiJCLW+yZjSMcWbam/sE9ONkfVH8AEsk+xEXaf8ST7Er7ib9RAF2WlzDbigeBLorv3uNv03AOg02Lplp0gnnftSlevd0MujUSCPWdx1lvwVpfz9n5466lgkGDCfN5D0HRti1eDGfBz8VmZdlXEr0QOWScAQ8+A8dR1pIRp3v2t460ax5He/ZEaUTJ5oCGl2fDJLIwLfS1L7iN5k3XrqZpZ2h+b+FCzw3XPXv5AYPGRvx1aV5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=etactica.com; dmarc=pass action=none header.from=etactica.com; dkim=pass header.d=etactica.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eTactica.onmicrosoft.com; s=selector2-eTactica-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uA7TF4s3NosXj14MG3IC9Ah70mIBX/TRcSnGv7C/if4=; b=X9f5Tq2cyupl3eWkflP0zFt9RqdSuixS4r8uCdrl/H2kXAX0bpn+f69y+ByjivEgOwSVkPypYcSHoFbYPMSc0bJN12t27qB4AZKSAEl5/T8zGL8w9Izzn5s/ex1EpLgzl9Rh8Jx2aQC+HRWoWA85KqdJXlbNTNyaEZ4PvmdqCZA= Authentication-Results: lists.openwrt.org; dkim=none (message not signed) header.d=none;lists.openwrt.org; dmarc=none action=none header.from=etactica.com; Received: from VI1PR07MB4462.eurprd07.prod.outlook.com (20.177.54.81) by VI1PR07MB6367.eurprd07.prod.outlook.com (10.186.162.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.15; Tue, 30 Jun 2020 10:39:08 +0000 Received: from VI1PR07MB4462.eurprd07.prod.outlook.com ([fe80::a9c1:52f2:43a2:f058]) by VI1PR07MB4462.eurprd07.prod.outlook.com ([fe80::a9c1:52f2:43a2:f058%3]) with mapi id 15.20.3153.018; Tue, 30 Jun 2020 10:39:08 +0000 From: Karl Palsson To: openwrt-devel@lists.openwrt.org Subject: [PATCH libubox 1/4] lua/uloop: fd_add() better args checking Date: Tue, 30 Jun 2020 10:38:41 +0000 Message-Id: <20200630103844.16633-2-karlp@etactica.com> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200630103844.16633-1-karlp@etactica.com> References: <20200630103844.16633-1-karlp@etactica.com> X-ClientProxiedBy: LNXP265CA0080.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:76::20) To VI1PR07MB4462.eurprd07.prod.outlook.com (2603:10a6:803:69::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from strem.lan (213.181.112.179) by LNXP265CA0080.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:76::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.27 via Frontend Transport; Tue, 30 Jun 2020 10:39:07 +0000 X-Mailer: git-send-email 2.21.3 X-Originating-IP: [213.181.112.179] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e8ef18e7-d8fa-4ffb-ca0c-08d81ce1d17d X-MS-TrafficTypeDiagnostic: VI1PR07MB6367: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2331; X-Forefront-PRVS: 0450A714CB X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vdriXgcPZaYtaYuEDjOm4xkkWX1vk8N/MtLertrvogkaBWC2A/tce2wAC/xaxRD3+0H+x0YakZLl98AEa2cjrRbA3IAVCNaOkFgUsG6ItQLZ78ofxSgfh1Lqk6q5s75Fx3/NNwnnITjLKfutAHp5QoJTQM7UPCxNnNtKMYUtNZhP5A9/uq9B+oM/v/xkPJWqiKEqi2zGXYQnaK8snd//kr5QavdqadwpmHIhQz8HgiE0dKVS/pUvQ3ZobCdiVETd3k/iaOZ4kUU3UeiFWPKsS4swZxVg7jw//35hnq4O3ROSeEa/JHSboE8/HaaXhAp9BaM5gh3B0KgGnyPTdlFEMOBh49RUCX+geSF4C0eyP0HKA5lZ/P8RPRnIjIsfV6t0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR07MB4462.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(376002)(396003)(39830400003)(346002)(366004)(136003)(1076003)(52116002)(6512007)(66476007)(316002)(66946007)(66556008)(6666004)(2906002)(86362001)(36756003)(5660300002)(8886007)(508600001)(6506007)(2616005)(956004)(83380400001)(8676002)(26005)(8936002)(4326008)(186003)(6486002)(16526019)(107886003)(6916009)(21314003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: tCEcdxRIa3mGgOAJTUilg8pLjwSQBWJV7u3oXTUs+JDffxgKh/uZeyC19qHMc0RqJ57s4bmiRybSTgOeTCBBIIhY4DEMYfKwb/0pzGY+XDjO5VH+MahCDEzORu07X9vRNC6ylbnButeSASAQTKF3AtXBJJAv/TwrPzfzIp965liIcXImIr7Sc9ESddIEE7BFPXVL/e5uxYnO0kC0oNEe8prvoxHc3YUX7m7X/CBbk4BgzsJRP85hOUSU8Z7YuXEw7IJzHTPaTJELxpKyLL6+zQVK/IQWhOn7T6u2BDhhuI6F+bPcWPX+Mth58aTV+MVW29Cqns53i7wI4Wgr1tyKMBYVM57nCR4IwFvW+P5eOwJv4RyUOz41L9DJcdPFBozICFsgEYMXHzfVtaPF/OAV3orutbNXZSk+TEMTG1ufy4xKb1c+lxzzF7OtgeJH9JPiaODS5XbymEQzTK6M1A9VYW1GOH5/nqTGHj0fblp/Kco= X-OriginatorOrg: etactica.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8ef18e7-d8fa-4ffb-ca0c-08d81ce1d17d X-MS-Exchange-CrossTenant-AuthSource: VI1PR07MB4462.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2020 10:39:08.3005 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e3621586-558f-4e21-92a9-26df2c484dae X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZYXlFUKTjlSLEzScmGK+FpmYWjhE+Co1QI1MOsxn42WASJ0iApj4yTAInIQjzoMsRrGloiWVJlx+NtqLDmaKQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB6367 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -0.7 (/) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-0.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [40.107.22.122 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [40.107.22.122 listed in wl.mailspike.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay 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: Karl Palsson Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Actually check for flags being valid, instead of simply ignoring the call if flags was zero. Use standard lua checks for the function argument, so you can get a normal "argument #2 was invalid, expected function, got xxx" instead of the vague, "invalid arg list" Signed-off-by: Karl Palsson --- lua/uloop.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/lua/uloop.c b/lua/uloop.c index 1b0389f..fcbe274 100644 --- a/lua/uloop.c +++ b/lua/uloop.c @@ -232,17 +232,14 @@ static int ul_ufd_add(lua_State *L) int ref; int fd_ref; - if (lua_isnumber(L, -1)) { - flags = lua_tointeger(L, -1); - lua_pop(L, 1); - } - - if (!lua_isfunction(L, -1)) { - lua_pushstring(L, "invalid arg list"); + flags = luaL_checkinteger(L, -1); + if (!flags) { + lua_pushstring(L, "flags cannot be zero"); lua_error(L); - - return 0; } + lua_pop(L, 1); + + luaL_checktype(L, -1, LUA_TFUNCTION); fd = get_sock_fd(L, -2); @@ -261,8 +258,7 @@ static int ul_ufd_add(lua_State *L) ufd->fd.fd = fd; ufd->fd_r = fd_ref; ufd->fd.cb = ul_ufd_cb; - if (flags) - uloop_fd_add(&ufd->fd, flags); + uloop_fd_add(&ufd->fd, flags); return 1; }