Files
linux-stable-mirror/include/net
Kuniyuki IwashimaandGreg Kroah-Hartman 9127589aab ipv4: fib: Don't ignore error route in local/main tables.
[ Upstream commit b72f0db642 ]

When CONFIG_IP_MULTIPLE_TABLES is enabled but no rule is added,
fib_lookup() performs route lookup directly on two tables.

Since the first lookup does not properly bail out, the result
of an error route in the merged local/main table could be
overwritten by another route in the default table:

  # unshare -n
  # ip link set lo up
  # ip route add 192.168.0.0/24 dev lo table 253
  # ip route add unreachable 192.168.0.0/24
  # ip route get 192.168.0.1
  192.168.0.1 dev lo table default uid 0
      cache <local>

Once a random rule is added, the error route is respected:

  # ip rule add table 0
  # ip rule del table 0
  # ip route get 192.168.0.1
  RTNETLINK answers: No route to host

Let's fix the inconsistent behaviour.

Fixes: f4530fa574 ("ipv4: Avoid overhead when no custom FIB rules are installed.")
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260619212753.3367244-1-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2026-07-24 15:54:51 +02:00
..
2025-02-21 13:49:02 +01:00
2026-01-11 15:18:59 +01:00
2024-01-31 16:17:04 -08:00
2024-12-19 18:08:53 +01:00
2025-02-21 13:50:06 +01:00
2023-10-10 22:00:46 +02:00
2025-03-07 16:56:37 +01:00