]> www.infradead.org Git - users/dwmw2/linux.git/commit
ipv4: route: fix drop reason being overridden in ip_route_input_slow
authorAntoine Tenart <atenart@kernel.org>
Wed, 8 Jan 2025 16:57:15 +0000 (17:57 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 10 Jan 2025 02:03:24 +0000 (18:03 -0800)
commit8c7a6efc017e59f2b773a8a4c0897309dfe1d742
tree9161cc13d35e6c7c92c2ca47eec95367d6b7a399
parent03d120f27d050336f7e7d21879891542c4741f81
ipv4: route: fix drop reason being overridden in ip_route_input_slow

When jumping to 'martian_destination' a drop reason is always set but
that label falls-through the 'e_nobufs' one, overriding the value.

The behavior was introduced by the mentioned commit. The logic went
from,

goto martian_destination;
...
  martian_destination:
...
  e_inval:
err = -EINVAL;
goto out;
  e_nobufs:
err = -ENOBUFS;
goto out;

to,

reason = ...;
goto martian_destination;
...
  martian_destination:
...
  e_nobufs:
reason = SKB_DROP_REASON_NOMEM;
goto out;

A 'goto out' is clearly missing now after 'martian_destination' to avoid
overriding the drop reason.

Fixes: 5b92112acd8e ("net: ip: make ip_route_input_slow() return drop reasons")
Reported-by: Sabrina Dubroca <sd@queasysnail.net>
Cc: Menglong Dong <menglong8.dong@gmail.com>
Signed-off-by: Antoine Tenart <atenart@kernel.org>
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://patch.msgid.link/20250108165725.404564-1-atenart@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/route.c