On Tue, Aug 20, 2019 at 09:14:29PM -0400, Steven Rostedt wrote:
> On Tue, 20 Aug 2019 12:58:49 +0200
> Christophe Leroy <[email protected]> wrote:
> 
> > >> index 1077366f496b..6c22e8a6f9de 100644
> > >> --- a/lib/bug.c
> > >> +++ b/lib/bug.c
> > >> @@ -181,6 +181,15 @@ enum bug_trap_type report_bug(unsigned long 
> > >> bugaddr, struct pt_regs *regs)
> > >>                  }
> > >>          }
> > >>   
> > >> +        /*
> > >> +         * BUG() and WARN_ON() families don't print a custom debug 
> > >> message
> > >> +         * before triggering the exception handler, so we must add the
> > >> +         * "cut here" line now. WARN() issues its own "cut here" before 
> > >> the
> > >> +         * extra debugging message it writes before triggering the 
> > >> handler.
> > >> +         */
> > >> +        if ((bug->flags & BUGFLAG_PRINTK) == 0)
> > >> +                printk(KERN_DEFAULT CUT_HERE);  
> > > 
> > > I'm not loving that BUGFLAG_PRINTK name, BUGFLAG_CUT_HERE makes more
> > > sense to me.
> > >   
> > 
> > Actually it would be BUGFLAG_NO_CUT_HERE then, otherwise all arches not 
> > using the generic macros will have to add the flag to get the "cut here" 
> > line.
> >
> 
> Perhaps they all should be audited to see if they don't have the same
> problem?

As far as I could tell, all the other combinations end up either using
the slow path bug helpers or the common exception handler.
warn-with-a-fmt-string is the only case that does the "early cut here".

-- 
Kees Cook

Reply via email to