]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
icmp: prevent possible NULL dereferences from icmp_build_probe()
authorEric Dumazet <edumazet@google.com>
Sat, 20 Apr 2024 07:01:16 +0000 (07:01 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 May 2024 14:32:35 +0000 (16:32 +0200)
commitd68dc711d84fdcf698e5d45308c3ddeede586350
treeb22a53cf88d9772b0ebc3799d6ec3d1e4d89fc18
parent1fb855ae29c07f03a1ad52b6bc518541c9aa5fc6
icmp: prevent possible NULL dereferences from icmp_build_probe()

[ Upstream commit c58e88d49097bd12dfcfef4f075b43f5d5830941 ]

First problem is a double call to __in_dev_get_rcu(), because
the second one could return NULL.

if (__in_dev_get_rcu(dev) && __in_dev_get_rcu(dev)->ifa_list)

Second problem is a read from dev->ip6_ptr with no NULL check:

if (!list_empty(&rcu_dereference(dev->ip6_ptr)->addr_list))

Use the correct RCU API to fix these.

v2: add missing include <net/addrconf.h>

Fixes: d329ea5bd884 ("icmp: add response to RFC 8335 PROBE messages")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Andreas Roeseler <andreas.a.roeseler@gmail.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/ipv4/icmp.c