On Fri, Jul 22, 2022 at 09:43:02PM +0200, Alexander Bluhm wrote:
> Hi,
> 
> During regress testing I found this bug.
> 
> splassert: rip6_input: want 1 have 2
> Starting stack trace...
> rip6_input(1,2,d0c6b7ad,f57ff9fc) at rip6_input+0x166
> rip6_input(f57ffbfc,f57ffbe8,3a,18) at rip6_input+0x166
> icmp6_input(f57ffbfc,f57ffbe8,3a,18) at icmp6_input+0x66d
> ip_deliver(f57ffbfc,f57ffbe8,3a,18) at ip_deliver+0xf4
> ip6_input_if(f57ffbfc,f57ffbe8,29,0,d7066830) at ip6_input_if+0x88a
> ipv6_input(d7066830,dafe5400) at ipv6_input+0x2b
> ether_input(d7066830,dafe5400) at ether_input+0x3a9
> if_input_process(d7066830,f57ffc54) at if_input_process+0x5d
> ifiq_process(d7066ae0) at ifiq_process+0x57
> taskq_thread(d6ff1040) at taskq_thread+0x69
> End of stack trace.
> 
> ip6_input() has shared net lock.  ip_deliver() needs exclusive net
> lock.  Use ip6_ours() to queue the packet.  Move the write lock
> assertion into ip_deliver() to catch such bugs earlier.
> 
> The assertion is only triggered with IPv6 multicast forwarding or
> router alert hop by hop option.  So nobody noticed it.

OK kn

Reply via email to