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 X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CED80C4338F for ; Wed, 18 Aug 2021 13:34:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8EA0D610A1 for ; Wed, 18 Aug 2021 13:34:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 8EA0D610A1 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=goodmis.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DF1EA8925D; Wed, 18 Aug 2021 13:33:59 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 720226E5C6 for ; Wed, 18 Aug 2021 13:33:52 +0000 (UTC) Received: from oasis.local.home (cpe-66-24-58-225.stny.res.rr.com [66.24.58.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5C0CE6109E; Wed, 18 Aug 2021 13:33:51 +0000 (UTC) Date: Wed, 18 Aug 2021 09:33:49 -0400 From: Steven Rostedt To: Kees Cook Cc: linux-kernel@vger.kernel.org, Ingo Molnar , "Gustavo A. R. Silva" , Greg Kroah-Hartman , Andrew Morton , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-staging@lists.linux.dev, linux-block@vger.kernel.org, linux-kbuild@vger.kernel.org, clang-built-linux@googlegroups.com, Rasmus Villemoes , linux-hardening@vger.kernel.org Subject: Re: [PATCH v2 50/63] tracing: Use memset_startat() to zero struct trace_iterator Message-ID: <20210818093349.3144276b@oasis.local.home> In-Reply-To: <20210818060533.3569517-51-keescook@chromium.org> References: <20210818060533.3569517-1-keescook@chromium.org> <20210818060533.3569517-51-keescook@chromium.org> X-Mailer: Claws Mail 3.18.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Tue, 17 Aug 2021 23:05:20 -0700 Kees Cook wrote: > In preparation for FORTIFY_SOURCE performing compile-time and run-time > field bounds checking for memset(), avoid intentionally writing across > neighboring fields. > > Use memset_startat() to avoid confusing memset() about writing beyond > the target struct member. > > Cc: Steven Rostedt > Cc: Ingo Molnar > Signed-off-by: Kees Cook > --- > kernel/trace/trace.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c > index 13587e771567..9ff8c31975cd 100644 > --- a/kernel/trace/trace.c > +++ b/kernel/trace/trace.c > @@ -6691,9 +6691,7 @@ tracing_read_pipe(struct file *filp, char __user *ubuf, > cnt = PAGE_SIZE - 1; > > /* reset all but tr, trace, and overruns */ > - memset(&iter->seq, 0, > - sizeof(struct trace_iterator) - > - offsetof(struct trace_iterator, seq)); > + memset_startat(iter, 0, seq); I can't find memset_startat() in mainline nor linux-next. I don't see it in this thread either, but since this has 63 patches, I could have easily missed it. This change really should belong to a patch set that just introduces memset_startat() (and perhaps memset_after()) and then updates all the places that should use it. That way I can give it a proper review. In other words, you should break this patch set up into smaller, more digestible portions for the reviewers. Thanks, -- Steve > cpumask_clear(iter->started); > trace_seq_init(&iter->seq); > iter->pos = -1;