From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2ECD4CA0FE6 for ; Fri, 1 Sep 2023 11:24:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349151AbjIALYz (ORCPT ); Fri, 1 Sep 2023 07:24:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231963AbjIALYy (ORCPT ); Fri, 1 Sep 2023 07:24:54 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EEDD6FC for ; Fri, 1 Sep 2023 04:24:51 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id 07B93CE22C2 for ; Fri, 1 Sep 2023 11:24:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40438C433C8; Fri, 1 Sep 2023 11:24:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1693567488; bh=ISlbIFDzUSUgg9q15hbTTknP8Yy5t0vmuvU3sSDJ3z4=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=fQdJjKHl0OU1E81MEcl1CatFCNww7Ku8s37FGuhALWAOJVAycEzyRmDWnZKo+nBCA IlScbaGvU7SgexkowRFnBizO62vVfjtqMlQaUCZeRvaZbcb6MUWrRGsum6lSC9Jx3A Seq87tiv0NVnMLWb2t+5MQcoXeq6GabXJeNyolcsg2tD9exQk3ugk9g41iHh9kvvGm 84U0kL7kQFkGkbr0tiLVR7ADbD9BUI7Vv8kASlyPGdbIAuNDEfL7ro0UM3rikvG96J 97GaIDK6vDsNCgXeoaYVnDUhg19OgxPWTvm41chErXJXIleGad6DQRHPgZv44NFmBk TWjq9zxUgAPuA== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1qc2Gb-009vXb-FT; Fri, 01 Sep 2023 12:24:45 +0100 Date: Fri, 01 Sep 2023 12:24:45 +0100 Message-ID: <86v8cudtky.wl-maz@kernel.org> From: Marc Zyngier To: Mostafa Saleh Cc: catalin.marinas@arm.com, will@kernel.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, oliver.upton@linux.dev, kristina.martsenko@arm.com, broonie@kernel.org, quic_pkondeti@quicinc.com, justinstitt@google.com Subject: Re: [PATCH] Revert "arm64/sysreg: refactor deprecated strncpy" In-Reply-To: <20230831162227.2307863-1-smostafa@google.com> References: <20230831162227.2307863-1-smostafa@google.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.2 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: smostafa@google.com, catalin.marinas@arm.com, will@kernel.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, oliver.upton@linux.dev, kristina.martsenko@arm.com, broonie@kernel.org, quic_pkondeti@quicinc.com, justinstitt@google.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Mostafa, On Thu, 31 Aug 2023 17:22:27 +0100, Mostafa Saleh wrote: > > This reverts commit d232606773a0b09ec7f1ffc25f63abe801d011fd. > > Using strscpy is not correct in this context and the commit > assumption is not right "strncpy is deprecated for use on > NUL-terminated destination strings". > > strncpy is used here to copy parts of the string(cmdline) separated > by spaces into the buffer and not a NULL terminated string. > > This breaks the arm options "kvm-arm.mode=protected, arm64.nobti ..." > > Signed-off-by: Mostafa Saleh > --- > arch/arm64/kernel/idreg-override.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/arm64/kernel/idreg-override.c b/arch/arm64/kernel/idreg-override.c > index aee12c75b738..2fe2491b692c 100644 > --- a/arch/arm64/kernel/idreg-override.c > +++ b/arch/arm64/kernel/idreg-override.c > @@ -262,9 +262,9 @@ static __init void __parse_cmdline(const char *cmdline, bool parse_aliases) > if (!len) > return; > > - len = strscpy(buf, cmdline, ARRAY_SIZE(buf)); > - if (len == -E2BIG) > - len = ARRAY_SIZE(buf) - 1; > + len = min(len, ARRAY_SIZE(buf) - 1); > + strncpy(buf, cmdline, len); > + buf[len] = 0; > > if (strcmp(buf, "--") == 0) > return; Instead of completely reverting the patch, maybe something like the hack below (completely untested), so that we can still get rid of another instance of strncpy(), and yet bring back some sanity in the logic? Thanks, M. diff --git a/arch/arm64/kernel/idreg-override.c b/arch/arm64/kernel/idreg-override.c index aee12c75b738..be5c778a3f14 100644 --- a/arch/arm64/kernel/idreg-override.c +++ b/arch/arm64/kernel/idreg-override.c @@ -262,9 +262,8 @@ static __init void __parse_cmdline(const char *cmdline, bool parse_aliases) if (!len) return; - len = strscpy(buf, cmdline, ARRAY_SIZE(buf)); - if (len == -E2BIG) - len = ARRAY_SIZE(buf) - 1; + len = min(len, ARRAY_SIZE(buf) - 1); + strscpy(buf, cmdline, len); if (strcmp(buf, "--") == 0) return; -- Without deviation from the norm, progress is not possible.