Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp5332064rwi; Mon, 17 Oct 2022 19:48:27 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4cJR7yIp4GwOzRNWBsKOi8P/htD6BIrq+PIRVEF7/u7VUbOP4/NDBKhRNgHeIL6CyMyHx5 X-Received: by 2002:a05:6402:70c:b0:459:7b65:fead with SMTP id w12-20020a056402070c00b004597b65feadmr603541edx.209.1666061307600; Mon, 17 Oct 2022 19:48:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666061307; cv=none; d=google.com; s=arc-20160816; b=kFR0Dk7iWJPV0oyMJp8z20EcYxAsb9VvRiZskn7Cr46dYrTdzqqHRPs0rzBBZ/Bx+b MCIk3WIsjrhEDqJvCsNCt2kLUWTm+288UvDoMefODFLwHdEXnJhn1Vmv1pi9HDc0SLpX NtGV+s79svrfdKJEp3IY6Rx2Qa6PU6woRYS6a115yc5aptIeCx3ugTlH8FGPENj0MHqZ k2rTTJJHO3tJoP/dZaNDu0MZNVglcb3iJrqmVcJ2tEGU3nBT4L2bIqM8zIvjesbmDY+w piBmByQOyeUB4kMTTWV3OwMw1P/rrry1usrVxOn4+XHxbD2UuKDOaN0WgssWnG5HAG9n LcCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:feedback-id:dkim-signature:dkim-signature; bh=bTvWLcvh9ljVlRrZI2X/bXzwu0U/f0+Pt0Mz34zZoEI=; b=aLARz0u/goB9haWqzZe48M1OJLGiG/CjMWMSAXYrm96cJ3mCWOP44wq+Z+6+D4y68y mt0ORQenmi8BTAb2i+J94tmjlvJhApV6Z81u/i7NEEXO+y1UY2SjQbBs1PF8pMff/gy1 6VXjTX0ZitxjUlx6V6NnNvLe0XhwzNvXCqpf9NTUyOScqn8lGaW+Ho1FfsXlnoNzQ5R6 WboGUlf20e/DnyvQYsOxt6FPJH9LEo92YB1aRGWhkRPQiVL7MA0sHhhWAgOyMMXDodb2 rydPMGMo04rZCjyDlmlktv6QIv2D1KNvuo09kHJTS+ZUZCPu+ZCNaz9zwtdDWrRJKfOx qeDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@themaw.net header.s=fm2 header.b=CiSOXLdx; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=UvVIGswq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id go9-20020a1709070d8900b007879f5efba7si7965434ejc.872.2022.10.17.19.48.02; Mon, 17 Oct 2022 19:48:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@themaw.net header.s=fm2 header.b=CiSOXLdx; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=UvVIGswq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231207AbiJRCJX (ORCPT + 99 others); Mon, 17 Oct 2022 22:09:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229670AbiJRCIq (ORCPT ); Mon, 17 Oct 2022 22:08:46 -0400 Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 682603844E; Mon, 17 Oct 2022 19:08:33 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 31EC35C018A; Mon, 17 Oct 2022 22:07:22 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Mon, 17 Oct 2022 22:07:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=themaw.net; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1666058842; x= 1666145242; bh=bTvWLcvh9ljVlRrZI2X/bXzwu0U/f0+Pt0Mz34zZoEI=; b=C iSOXLdx3y9KEX3qCsTr1PTUjNSBkeWIpN4mqk2bcxznHQJ6CFURsIlz7deN8+ncK GIbE7nUjZz5vAjGksm93QuM845/PsKv9r7FkK3oaVc1evQxr6HFscmaSF7PtiqS5 iq5HgrBo0CQCq4DV0VTc3H7ak4zwQRxEuZjNRH+Oqa1BcCCIggDtb+PdpNbxcsS3 1svwDfOQa153w7onrEVorQGJ7B2qWdDb+SWtKzLvkyNHWaXDpSiv0B7c8aNrY81W Bijy+9WPzIjaHh0v5Lv7iZCIpN2A1Aw854WG2xzSSNqZ4fX5H3KRN8VAh+V3LwKE hjxbrT7Xq+DvOqRB4eXBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1666058842; x= 1666145242; bh=bTvWLcvh9ljVlRrZI2X/bXzwu0U/f0+Pt0Mz34zZoEI=; b=U vVIGswq7gmKtiZWcWeiymZDBBfOJJFUzlEPNh55/8/S2t7WkpxokUi7+MSs+kBo0 7LzwQOkAj6D/46BQeVqpf64MqEGfx3C7XUB99DyCOeOOig1M9KFGBIkESSwfpTrA r3a3X0NvhEQTfL5Lhw8N5Mirmu7gQKXlaAYD2BgQi9y5NJcmgiKsxpvGYC2xM7Ib r4GyZhSxZ/DXcL57NQLiWddY1yAdnSoTyfIWlhqoOzkzUt5D9JAkQeJaSYEjbDA/ StpYQfllutPQrFmF+hs6j1xahGr1Hcwxh8SFOzU91vjZggFgKWTFgV/A0MpQhyg0 V2wlnwJ31/tury3P1/VWQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeeltddgheeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpefkrghn ucfmvghnthcuoehrrghvvghnsehthhgvmhgrfidrnhgvtheqnecuggftrfgrthhtvghrnh epuefhueeiieejueevkefgiedtteehgfdutdelfffhleeflefhudeuvdefhfeghfehnecu vehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprhgrvhgvnh esthhhvghmrgifrdhnvght X-ME-Proxy: Feedback-ID: i31e841b0:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 17 Oct 2022 22:07:18 -0400 (EDT) Message-ID: Date: Tue, 18 Oct 2022 10:07:13 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: [REPOST PATCH v3 2/2] vfs: parse: deal with zero length string value Content-Language: en-US To: Andrew Morton Cc: Al Viro , Siddhesh Poyarekar , David Howells , Miklos Szeredi , Carlos Maiolino , linux-fsdevel , Kernel Mailing List References: <166365872189.39016.10771273319597352356.stgit@donald.themaw.net> <166365878918.39016.12757946948158123324.stgit@donald.themaw.net> <20221017185523.22f43b5d7f9fee1e1e3d872f@linux-foundation.org> From: Ian Kent In-Reply-To: <20221017185523.22f43b5d7f9fee1e1e3d872f@linux-foundation.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 18/10/22 09:55, Andrew Morton wrote: > On Tue, 20 Sep 2022 15:26:29 +0800 Ian Kent wrote: > >> Parsing an fs string that has zero length should result in the parameter >> being set to NULL so that downstream processing handles it correctly. >> For example, the proc mount table processing should print "(none)" in >> this case to preserve mount record field count, but if the value points >> to the NULL string this doesn't happen. >> >> ... >> >> --- a/fs/fs_parser.c >> +++ b/fs/fs_parser.c >> @@ -197,6 +197,8 @@ int fs_param_is_bool(struct p_log *log, const struct fs_parameter_spec *p, >> struct fs_parameter *param, struct fs_parse_result *result) >> { >> int b; >> + if (param->type == fs_value_is_empty) >> + return 0; >> if (param->type != fs_value_is_string) >> return fs_param_bad_value(log, param); >> if (!*param->string && (p->flags & fs_param_can_be_empty)) >> @@ -213,6 +215,8 @@ int fs_param_is_u32(struct p_log *log, const struct fs_parameter_spec *p, >> struct fs_parameter *param, struct fs_parse_result *result) >> { >> int base = (unsigned long)p->data; >> + if (param->type == fs_value_is_empty) >> + return 0; >> if (param->type != fs_value_is_string) >> return fs_param_bad_value(log, param); >> if (!*param->string && (p->flags & fs_param_can_be_empty)) >> >> [etcetera] > This feels wrong. Having to check for fs_value_is_empty in so many > places makes me think "we just shouldn't have got this far". Am I > right for once? Maybe, did you have a different approach in mind ... ? My thought was that these helper functions need to protect themselves against things that could creep in and we don't know what they may be. I'm not sure the best strategy is to not ever do this type of call in the first place ... Ian