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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 56EBFC05027 for ; Wed, 1 Feb 2023 11:53:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=oFsSDilu7gBvnx8KXDCWvAFURvQZnf/3lxOKev/eO2I=; b=uh9wv2SiOqCByD S6g3aFeK19hQEBfIuCBP2NV/28VgG7JlrmhkxsFwj0dNx5AX/wQhxBITv+o8H4ce/ut1VqnfAt5nU NaTeJuK/OZ8gQ4zaG2RQebJRRPPBy0RwMmCMXiGr0BZMopfCpiPhD5qtyC3Gq3JY8DPziB2x3cylq 0via5NwrIAFXqlSwy1E80DZV+hVRl+QWjfg7YFckEPuHRROmASlUIpKJhvBT0dcnFDntUE2pjLa7N bS/Y1JZfeROlYim/3rQMuyw8UOH92iLxcqs1s88rceCktPRqnXIkX8gytl9p0rpXA84kfrJCvTw2T rGGTIoy69L3e5oeKYLtw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pNBf3-00BbFw-2Y; Wed, 01 Feb 2023 11:52:21 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pNBez-00BbFD-Ja for linux-arm-kernel@lists.infradead.org; Wed, 01 Feb 2023 11:52:19 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 3117BB8204A for ; Wed, 1 Feb 2023 11:52:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDF54C433EF; Wed, 1 Feb 2023 11:52:12 +0000 (UTC) Date: Wed, 1 Feb 2023 11:52:09 +0000 From: Catalin Marinas To: Will Deacon Cc: Mark Brown , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 0/6] arm64/signal: Signal handling cleanups Message-ID: References: <20221212-arm64-signal-cleanup-v2-0-14a8f3e088b7@kernel.org> <20230131153816.GA2646@willie-the-truck> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230131153816.GA2646@willie-the-truck> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230201_035217_849852_758FC62A X-CRM114-Status: GOOD ( 28.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Jan 31, 2023 at 03:38:16PM +0000, Will Deacon wrote: > On Tue, Jan 31, 2023 at 12:51:33PM +0000, Catalin Marinas wrote: > > Hi Mark, > > > > On Tue, Jan 03, 2023 at 08:25:15PM +0000, Mark Brown wrote: > > > This series collects a number of small cleanups to the signal handling > > > code which removes redundant validation of size information and avoids > > > reading the same data from userspace twice. > > > > > > There are some overlaps with both the TPIDR2 signal handling and SME2 > > > serieses which are also in flight, applying this will require > > > adjustments in those serieses and vice versa. > > [...] > > > Mark Brown (6): > > > arm64/signal: Don't redundantly verify FPSIMD magic > > > arm64/signal: Remove redundant size validation from parse_user_sigframe() > > > arm64/signal: Make interface for restore_fpsimd_context() consistent > > > > I'm fine with the first three patches, they seem correct and make the > > frame checking more consistent. > > > > > arm64/signal: Avoid rereading context frame sizes > > > arm64/signal: Only read new data when parsing the SVE context > > > arm64/signal: Only read new data when parsing the ZA context > > > > I'm not sure these add much to the code readability (and the performance > > improvement I guess is negligible). We avoid some copy_from_user() into > > the context structures but rely on data read previously or some > > get_user() into local variables. Personally I'd make the > > restore_fpsimd_context() also do a copy_from_user() for consistency with > > the current sve and za frames restoring. > > > > Personal preference, not sure whether Will has the same view. > > That main thing I'm worried about is the potential for ToCToU bugs if we > read userdata more than once. For example, if we end up splitting checks > between the two reads, then an attacker could update the value in the > middle and potential cause us issues. If we just read the stuff once, we > don't have to worry about that. I thought this may be the case but I couldn't come up with an exploit. The actual size validation is done after the second read. The first read of the size is used to walk the frame and check the magic values. Anyway, you are probably right, it's easier to reason about ToCToU if we only read the size once. -- Catalin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel