From: Kees Cook <keescook@chromium.org>
To: Randy Dunlap <rdunlap@infradead.org>
Cc: Matthew Wilcox <willy@infradead.org>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
Timur Tabi <timur@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, torvalds@linux-foundation.org,
Petr Mladek <pmladek@suse.com>,
roman.fietze@magna.com, Steven Rostedt <rostedt@goodmis.org>,
John Ogness <john.ogness@linutronix.de>,
linux-mm@kvack.org, Akinobu Mita <akinobu.mita@gmail.com>
Subject: Re: [PATCH 0/2] introduce DUMP_PREFIX_UNHASHED for hex dumps
Date: Wed, 20 Jan 2021 12:28:50 -0800 [thread overview]
Message-ID: <202101201226.A03F16DF24@keescook> (raw)
In-Reply-To: <82e1f2f3-77c3-ffb4-34b2-0e6f23e6195d@infradead.org>
On Tue, Jan 19, 2021 at 12:18:17PM -0800, Randy Dunlap wrote:
> On 1/19/21 11:45 AM, Kees Cook wrote:
> >
> > How about this so the base address is hashed once, with the offset added
> > to it for each line instead of each line having a "new" hash that makes
> > no sense:
>
> Yes, good patch. Should have been like this to begin with IMO.
>
> > diff --git a/lib/hexdump.c b/lib/hexdump.c
> > index 9301578f98e8..20264828752d 100644
> > --- a/lib/hexdump.c
> > +++ b/lib/hexdump.c
> > @@ -242,12 +242,17 @@ void print_hex_dump(const char *level, const char *prefix_str, int prefix_type,
> > const void *buf, size_t len, bool ascii)
> > {
> > const u8 *ptr = buf;
> > + const u8 *addr;
> > int i, linelen, remaining = len;
> > unsigned char linebuf[32 * 3 + 2 + 32 + 1];
> >
> > if (rowsize != 16 && rowsize != 32)
> > rowsize = 16;
> >
> > + if (prefix_type == DUMP_PREFIX_ADDRESS &&
> > + ptr_to_hashval(ptr, &addr))
> > + addr = 0;
> > +
> > for (i = 0; i < len; i += rowsize) {
> > linelen = min(remaining, rowsize);
> > remaining -= rowsize;
> > @@ -258,7 +263,7 @@ void print_hex_dump(const char *level, const char *prefix_str, int prefix_type,
> > switch (prefix_type) {
> > case DUMP_PREFIX_ADDRESS:
> > printk("%s%s%p: %s\n",
> > - level, prefix_str, ptr + i, linebuf);
> > + level, prefix_str, addr + i, linebuf);
>
> Is 'addr' always set here?
> It is only conditionally set above.
It should be, yes. Though I agree, it's not obvious. ptr_to_hashval()
will write to it when returning 0. So if that fails, addr will have 0
written. Both only happen under DUMP_PREFIX_ADDRESS.
--
Kees Cook
next prev parent reply other threads:[~2021-01-20 20:35 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-16 22:09 [PATCH 0/2] introduce DUMP_PREFIX_UNHASHED for hex dumps Timur Tabi
2021-01-16 22:09 ` [PATCH 1/2] [v2] lib/hexdump: introduce DUMP_PREFIX_UNHASHED for unhashed addresses Timur Tabi
2021-01-18 10:03 ` Andy Shevchenko
2021-01-18 15:57 ` Timur Tabi
2021-01-18 17:14 ` Andy Shevchenko
2021-01-18 17:53 ` Timur Tabi
2021-01-16 22:09 ` [PATCH 2/2] mm/page_poison: use unhashed address in hexdump for check_poison_mem() Timur Tabi
2021-01-18 18:26 ` [PATCH 0/2] introduce DUMP_PREFIX_UNHASHED for hex dumps Matthew Wilcox
2021-01-18 19:03 ` Timur Tabi
2021-01-19 0:53 ` Sergey Senozhatsky
2021-01-19 1:47 ` Matthew Wilcox
2021-01-19 10:38 ` Sergey Senozhatsky
2021-01-19 19:45 ` Kees Cook
2021-01-26 16:47 ` Vlastimil Babka
2021-01-26 16:59 ` Timur Tabi
2021-01-26 17:14 ` Steven Rostedt
2021-01-26 17:14 ` Vlastimil Babka
2021-01-26 17:30 ` Timur Tabi
2021-01-26 17:39 ` Steven Rostedt
2021-01-26 17:40 ` Steven Rostedt
2021-01-26 19:23 ` John Ogness
2021-01-27 2:11 ` Sergey Senozhatsky
2021-01-27 3:22 ` Timur Tabi
2021-01-27 10:11 ` Petr Mladek
2021-01-27 10:38 ` Vlastimil Babka
2021-01-19 19:45 ` Kees Cook
2021-01-19 19:55 ` Timur Tabi
2021-01-19 20:10 ` Steven Rostedt
2021-01-19 20:49 ` Timur Tabi
2021-01-19 21:15 ` Steven Rostedt
2021-01-19 21:25 ` Timur Tabi
2021-01-20 9:19 ` Petr Mladek
2021-01-20 12:17 ` Matthew Wilcox
2021-01-20 19:39 ` Linus Torvalds
2021-01-19 20:18 ` Randy Dunlap
2021-01-20 20:28 ` Kees Cook [this message]
2021-01-19 2:30 ` Timur Tabi
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=202101201226.A03F16DF24@keescook \
--to=keescook@chromium.org \
--cc=akinobu.mita@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=pmladek@suse.com \
--cc=rdunlap@infradead.org \
--cc=roman.fietze@magna.com \
--cc=rostedt@goodmis.org \
--cc=sergey.senozhatsky@gmail.com \
--cc=timur@kernel.org \
--cc=torvalds@linux-foundation.org \
--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;
as well as URLs for NNTP newsgroup(s).