Subject: Re: KASAN: use-after-free Read in rds_tcp_tune

From: Joe Perches <[email-masked]>
Date: Wed, 14 Feb 2018 09:32:53 -0800

On Wed, 2018-02-14 at 18:16 +0100, Dmitry Vyukov wrote:
> On Wed, Feb 14, 2018 at 6:02 PM, Joe Perches <[email-masked]> wrote:
> > On Wed, 2018-02-14 at 16:55 +0100, Dmitry Vyukov wrote:
> > > On Wed, Feb 14, 2018 at 4:35 PM, Sowmini Varadhan <[email-masked]> wrote:
> > > > btw, checkpatch.pl complains about the [email-masked]
> > > > addresses as "Unrecognized email address", we should fix that
> > > > error from checkpatch at some point.
> > > 
> > > Interesting. Looking at checkpatch.pl I think it wants all addresses
> > > to be in <>, i.e.
> > > Reported-by: <[email-masked]>
> > > There probably was some reason to enforce this, so I think I will
> > > change the syzbot email template to include <>.
> > > Thanks!
> > 
> > Not really.
> > 
> > It's the somewhat unusual + in the address
> > that perl needs quoted before a substitution.
> > 
> > I believe this fixes it in checkpatch.
> > ---
> >  scripts/checkpatch.pl | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> > @@ -1075,7 +1075,7 @@ sub parse_email {
> >         } elsif ($formatted_email =~ /(\S+\@\S+)(.*)$/) {
> >                 $address = $1;
> >                 $comment = $2 if defined $2;
> > -               $formatted_email =~ s/$address.*$//;
> > +               $formatted_email =~ s/\Q$address\E.*$//;
> >                 $name = $formatted_email;
> >                 $name = trim($name);
> >                 $name =~ s/^\"|\"$//g;
> 
> 
> I can confirm that running
> $ git show HEAD | scripts/checkpatch.pl -
> on a commit that contains a syzbot Reported-by tag does not produce
> the warning anymore.
> 
> Joe, do you mind mailing this as patch?

'course not.  It's nice you tested it.

I did on the last thousand commits without
apparent change.

$ git log --format=oneline --no-merges -1000 | \
  cut -f1 -d" " | \
  while read commit ; do \
    ./scripts/checkpatch.pl --git $commit --types=bad_sign_off --terse ; \
  done