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=ham 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 C0DBEC63777 for ; Tue, 24 Nov 2020 17:05:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6D8AE2086A for ; Tue, 24 Nov 2020 17:05:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389949AbgKXRF2 (ORCPT ); Tue, 24 Nov 2020 12:05:28 -0500 Received: from mail.kernel.org ([198.145.29.99]:37472 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731540AbgKXRF1 (ORCPT ); Tue, 24 Nov 2020 12:05:27 -0500 Received: from gandalf.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 B3413206E5; Tue, 24 Nov 2020 17:05:25 +0000 (UTC) Date: Tue, 24 Nov 2020 12:05:23 -0500 From: Steven Rostedt To: Hui Su Cc: mingo@redhat.com, jack@suse.cz, akpm@linux-foundation.org, neilb@suse.de, tj@kernel.org, trond.myklebust@hammerspace.com, liuzhiqiang26@huawei.com, tytso@mit.edu, cai@lca.pw, linux-kernel@vger.kernel.org Subject: Re: [PATCH] trace: fix potenial dangerous pointer Message-ID: <20201124120523.34a59eed@gandalf.local.home> In-Reply-To: <20201124165205.GA23937@rlk> References: <20201124165205.GA23937@rlk> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 25 Nov 2020 00:52:05 +0800 Hui Su wrote: > The bdi_dev_name() returns a char [64], and > the __entry->name is a char [32]. > > It maybe dangerous to TP_printk("%s", __entry->name) > after the strncpy(). Acked-by: Steven Rostedt (VMware) This should go through the tree that has the code that uses these tracepoints. -- Steve > > Signed-off-by: Hui Su > --- > include/trace/events/writeback.h | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h > index e7cbccc7c14c..57d795365987 100644 > --- a/include/trace/events/writeback.h > +++ b/include/trace/events/writeback.h > @@ -190,7 +190,7 @@ TRACE_EVENT(inode_foreign_history, > ), > > TP_fast_assign( > - strncpy(__entry->name, bdi_dev_name(inode_to_bdi(inode)), 32); > + strscpy_pad(__entry->name, bdi_dev_name(inode_to_bdi(inode)), 32); > __entry->ino = inode->i_ino; > __entry->cgroup_ino = __trace_wbc_assign_cgroup(wbc); > __entry->history = history; > @@ -219,7 +219,7 @@ TRACE_EVENT(inode_switch_wbs, > ), > > TP_fast_assign( > - strncpy(__entry->name, bdi_dev_name(old_wb->bdi), 32); > + strscpy_pad(__entry->name, bdi_dev_name(old_wb->bdi), 32); > __entry->ino = inode->i_ino; > __entry->old_cgroup_ino = __trace_wb_assign_cgroup(old_wb); > __entry->new_cgroup_ino = __trace_wb_assign_cgroup(new_wb); > @@ -252,7 +252,7 @@ TRACE_EVENT(track_foreign_dirty, > struct address_space *mapping = page_mapping(page); > struct inode *inode = mapping ? mapping->host : NULL; > > - strncpy(__entry->name, bdi_dev_name(wb->bdi), 32); > + strscpy_pad(__entry->name, bdi_dev_name(wb->bdi), 32); > __entry->bdi_id = wb->bdi->id; > __entry->ino = inode ? inode->i_ino : 0; > __entry->memcg_id = wb->memcg_css->id; > @@ -285,7 +285,7 @@ TRACE_EVENT(flush_foreign, > ), > > TP_fast_assign( > - strncpy(__entry->name, bdi_dev_name(wb->bdi), 32); > + strscpy_pad(__entry->name, bdi_dev_name(wb->bdi), 32); > __entry->cgroup_ino = __trace_wb_assign_cgroup(wb); > __entry->frn_bdi_id = frn_bdi_id; > __entry->frn_memcg_id = frn_memcg_id;