From: Michal Hocko <mhocko@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
Dan Carpenter <dan.carpenter@oracle.com>,
Pavel Tatashin <pasha.tatashin@oracle.com>,
Alexander Duyck <alexander.h.duyck@linux.intel.com>,
Matthew Wilcox <willy@infradead.org>,
linux-mm@kvack.org, kernel-janitors@vger.kernel.org
Subject: Re: [PATCH] mm: debug: Fix a width vs precision bug in printk
Date: Sun, 25 Nov 2018 09:08:34 +0100 [thread overview]
Message-ID: <20181125080834.GB12455@dhcp22.suse.cz> (raw)
In-Reply-To: <20181123160846.1160ba23c2514ed9c316be9d@linux-foundation.org>
On Fri 23-11-18 16:08:46, Andrew Morton wrote:
> On Fri, 23 Nov 2018 23:48:06 +0900 Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> wrote:
>
> > On 2018/11/23 23:36, Dan Carpenter wrote:
> > > On Fri, Nov 23, 2018 at 10:01:25AM +0100, Michal Hocko wrote:
> > >> On Fri 23-11-18 10:21:35, Dan Carpenter wrote:
> > >>> We had intended to only print dentry->d_name.len characters but there is
> > >>> a width vs precision typo so if the name isn't NUL terminated it will
> > >>> read past the end of the buffer.
> > >>
> > >> OK, it took me quite some time to grasp what you mean here. The code
> > >> works as expected because d_name.len and dname.name are in sync so there
> > >> no spacing going to happen. Anyway what you propose is formally more
> > >> correct I guess.
> > >>
> > >
> > > Yeah. If we are sure that the name has a NUL terminator then this
> > > change has no effect.
> >
> > There seems to be %pd which is designed for printing "struct dentry".
>
> ooh, who knew. Can we use that please?
I wasn't aware of it either. I do not mind using it instead of the
opencoded variant of mine.
This should do it, right?
diff --git a/mm/debug.c b/mm/debug.c
index d18c5cea3320..68e9a9f2df16 100644
--- a/mm/debug.c
+++ b/mm/debug.c
@@ -80,7 +80,7 @@ void __dump_page(struct page *page, const char *reason)
if (mapping->host->i_dentry.first) {
struct dentry *dentry;
dentry = container_of(mapping->host->i_dentry.first, struct dentry, d_u.d_alias);
- pr_warn("name:\"%*s\" ", dentry->d_name.len, dentry->d_name.name);
+ pr_warn("name:\"%pd\" ", dentry);
}
}
BUILD_BUG_ON(ARRAY_SIZE(pageflag_names) != __NR_PAGEFLAGS + 1);
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2018-11-25 8:08 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-23 7:21 Dan Carpenter
2018-11-23 7:47 ` Anshuman Khandual
2018-11-23 9:01 ` Michal Hocko
2018-11-23 14:36 ` Dan Carpenter
2018-11-23 14:48 ` Tetsuo Handa
2018-11-24 0:08 ` Andrew Morton
2018-11-25 8:08 ` Michal Hocko [this message]
2018-11-23 10:37 ` David Hildenbrand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181125080834.GB12455@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=alexander.h.duyck@linux.intel.com \
--cc=dan.carpenter@oracle.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=pasha.tatashin@oracle.com \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox