]> git.baikalelectronics.ru Git - kernel.git/commit
udp: fix the proto value passed to ip_protocol_deliver_rcu for the segments
authorXin Long <lucien.xin@gmail.com>
Mon, 7 Dec 2020 07:55:40 +0000 (15:55 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Dec 2020 08:32:11 +0000 (00:32 -0800)
commitfc092afce9fa8a4f21a28439b03eee31a1e0cf42
tree455c2e9f949652022a931100901157104394e64e
parent522e37ad533097d5e9eb6df8cc320b382c68484c
udp: fix the proto value passed to ip_protocol_deliver_rcu for the segments

Guillaume noticed that: for segments udp_queue_rcv_one_skb() returns the
proto, and it should pass "ret" unmodified to ip_protocol_deliver_rcu().
Otherwize, with a negtive value passed, it will underflow inet_protos.

This can be reproduced with IPIP FOU:

  # ip fou add port 5555 ipproto 4
  # ethtool -K eth1 rx-gro-list on

Fixes: 6b9bfa80f245 ("udp: cope with UDP GRO packet misdirection")
Reported-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/udp.c