On Thu, May 24, 2018 at 10:18 PM, David Miller <da...@davemloft.net> wrote: > From: Willem de Bruijn <willemdebruijn.ker...@gmail.com> > Date: Wed, 23 May 2018 14:29:52 -0400 > >> From: Willem de Bruijn <will...@google.com> >> >> A precondition check in ip_recv_error triggered on an otherwise benign >> race. Remove the warning. >> >> The warning triggers when passing an ipv6 socket to this ipv4 error >> handling function. RaceFuzzer was able to trigger it due to a race >> in setsockopt IPV6_ADDRFORM. > ... >> This socket option converts a v6 socket that is connected to a v4 peer >> to an v4 socket. It updates the socket on the fly, changing fields in >> sk as well as other structs. This is inherently non-atomic. It races >> with the lockless udp_recvmsg path. >> >> No other code makes an assumption that these fields are updated >> atomically. It is benign here, too, as ip_recv_error cares only about >> the protocol of the skbs enqueued on the error queue, for which >> sk_family is not a precise predictor (thanks to another isue with >> IPV6_ADDRFORM). >> >> Link: http://lkml.kernel.org/r/20180518120826.ga19...@dragonet.kaist.ac.kr >> Fixes: ("7ce875e5ecb8 ipv4: warn once on passing AF_INET6 socket to >> ip_recv_error") >> Reported-by: DaeRyong Jeong <threeear...@gmail.com> >> Suggested-by: Eric Dumazet <eduma...@google.com> >> Signed-off-by: Willem de Bruijn <will...@google.com> > > Applied and queued up for -stable. > > The SHA1_ID doesn't go inside the (" ") of the Fixes tag, I fixed > it up this time.
Thanks David. Sorry about that. I'll send a checkpatch.pl patch to catch such typos myself in the future. Something like +# Check format of Fixes line + if ($in_commit_log && $line =~ /^\s*fixes:/i) { + if ($line !~ /^fixes:\s[0-9a-f]{12,40}\s\(".*"\)$/i) { + WARN("BAD_FIXES", + "Fixes tag is not of form \"Fixes: <12+ chars of sha1> \(\"title line\"\)"); + } + } + though it seems that Fixes lines are expressly omitted from strict commit style checking at the moment. I don't immediately see why.