Re: [PATCH][RESEND] lib/vsprintf: make-printk-non-secret printks all addresses as unhashed

From: Kees Cook
Date: Wed Feb 03 2021 - 15:36:13 EST


On Wed, Feb 03, 2021 at 03:25:13PM -0500, Steven Rostedt wrote:
> On Wed, 3 Feb 2021 12:02:05 -0800
> Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>
> > On Wed, Feb 03, 2021 at 12:58:41PM -0600, Timur Tabi wrote:
> > > On 2/3/21 7:31 AM, Petr Mladek wrote:
> > > > Also please make sure that lib/test_printf.c will work with
> > > > the new option.
> > >
> > > As you suspected, it doesn't work:
> > >
> > > [ 206.966478] test_printf: loaded.
> > > [ 206.966528] test_printf: plain 'p' does not appear to be hashed
> > > [ 206.966740] test_printf: failed 1 out of 388 tests
> > >
> > > What should I do about this?
> > >
> > > On one hand, it is working as expected: %p is not hashed, and that should be
> > > a warning.
> > >
> > > On the other hand, maybe test_printf should be aware of the command line
> > > parameter and test to make sure that %p is NOT hashed?
> >
> > It seems like it'd be best for the test to fail, yes? It _is_ a problem
> > that %p is unhashed; it's just that the failure was intended.
> >
>
> I disagree.
>
> With a big notice that all pointers of unhashed, I don't think we need to
> print it failed when we expect it to fail.
>
> If anything, skip the test and state:
>
> test_printf: hash test skipped because "make-printk-non-secret" is on the
> command line.

Yeah, I'm fine with "fail" or "skip". "pass" is mainly what I don't
like. :)

--
Kees Cook