Ziyang Xuan
c7eeba4705
ipv6/addrconf: fix a potential refcount underflow for idev
...
[ Upstream commit 06a0716949c22e2aefb648526580671197151acc ]
Now in addrconf_mod_rs_timer(), reference idev depends on whether
rs_timer is not pending. Then modify rs_timer timeout.
There is a time gap in [1], during which if the pending rs_timer
becomes not pending. It will miss to hold idev, but the rs_timer
is activated. Thus rs_timer callback function addrconf_rs_timer()
will be executed and put idev later without holding idev. A refcount
underflow issue for idev can be caused by this.
if (!timer_pending(&idev->rs_timer))
in6_dev_hold(idev);
<--------------[1]
mod_timer(&idev->rs_timer, jiffies + when);
To fix the issue, hold idev if mod_timer() return 0.
Fixes: b7b1bfce0b ("ipv6: split duplicate address detection and router solicitation timer")
Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-27 08:37:32 +02:00
..
6lowpan
9p
9p/xen : Fix use after free bug in xen_9pfs_front_remove due to race condition
2023-04-20 12:07:36 +02:00
802
mrp: introduce active flags to prevent UAF when applicant uninit
2023-01-18 11:41:37 +01:00
8021q
vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit()
2023-05-30 12:44:06 +01:00
appletalk
atm
atm: hide unused procfs functions
2023-06-09 10:28:59 +02:00
ax25
batman-adv
batman-adv: Broken sync while rescheduling delayed work
2023-06-14 10:59:56 +02:00
bluetooth
Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk
2023-06-14 10:59:58 +02:00
bpf
bpf: Move skb->len == 0 checks into __bpf_redirect
2023-01-18 11:41:04 +01:00
bpfilter
bridge
net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode
2023-07-27 08:37:23 +02:00
caif
net: caif: Fix use-after-free in cfusbl_device_notify()
2023-03-17 08:32:51 +01:00
can
can: j1939: avoid possible use-after-free when j1939_can_rx_register fails
2023-06-14 10:59:57 +02:00
ceph
core
netlink: Add __sock_i_ino() for __netlink_diag_dump().
2023-07-27 08:37:12 +02:00
dcb
dccp
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
decnet
Remove DECnet support from kernel
2023-06-21 15:44:10 +02:00
dns_resolver
dsa
net: dsa: tag_sja1105: fix MAC DA patching from meta frames
2023-07-27 08:37:24 +02:00
ethernet
hsr
hsr: Avoid double remove of a node.
2023-01-18 11:41:09 +01:00
ieee802154
net: ieee802154: fix error return code in dgram_bind()
2022-11-03 23:56:54 +09:00
ife
ipv4
tcp: annotate data races in __tcp_oow_rate_limited()
2023-07-27 08:37:23 +02:00
ipv6
ipv6/addrconf: fix a potential refcount underflow for idev
2023-07-27 08:37:32 +02:00
iucv
treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
2023-04-20 12:07:32 +02:00
kcm
kcm: close race conditions on sk_receive_queue
2022-11-25 17:42:21 +01:00
key
af_key: Reject optional tunnel/BEET mode templates in outbound policies
2023-05-30 12:44:05 +01:00
l2tp
inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy().
2023-04-26 11:24:05 +02:00
l3mdev
lapb
llc
mac80211
wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta
2023-04-20 12:07:33 +02:00
mac802154
mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add()
2022-12-14 11:30:45 +01:00
mpls
net: mpls: fix stale pointer if allocation fails during device rename
2023-02-22 12:50:41 +01:00
ncsi
net/ncsi: clear Tx enable mode when handling a Config required AEN
2023-05-17 11:35:58 +02:00
netfilter
netfilter: nf_tables: prevent OOB access in nft_byteorder_eval
2023-07-27 08:37:28 +02:00
netlabel
netlink
netlink: Add __sock_i_ino() for __netlink_diag_dump().
2023-07-27 08:37:12 +02:00
netrom
netrom: fix info-leak in nr_write_internal()
2023-06-09 10:28:52 +02:00
nfc
net: nfc: Fix use-after-free caused by nfc_llcp_find_local
2023-07-27 08:37:11 +02:00
nsh
net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment()
2023-05-30 12:44:05 +01:00
openvswitch
net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
2023-02-22 12:50:25 +01:00
packet
af_packet: do not use READ_ONCE() in packet_bind()
2023-06-09 10:28:53 +02:00
phonet
psample
qrtr
rds
rds: rds_rm_zerocopy_callback() correct order for list_add_tail()
2023-03-11 16:43:41 +01:00
rfkill
rose
net/rose: Fix to not accept on connected socket
2023-02-22 12:50:34 +01:00
rxrpc
rxrpc: Fix hard call timeout units
2023-05-17 11:35:59 +02:00
sched
net/sched: cls_fw: Fix improper refcount update leads to use-after-free
2023-07-27 08:37:30 +02:00
sctp
sctp: fix potential deadlock on &net->sctp.addr_wq_lock
2023-07-27 08:37:22 +02:00
smc
net/smc: fix fallback failed while sendmsg with fastopen
2023-03-17 08:32:51 +01:00
strparser
sunrpc
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
switchdev
tipc
net: tipc: resize nlattr array to correct size
2023-06-21 15:44:12 +02:00
tls
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
unix
af_unix: Fix data races around sk->sk_shutdown.
2023-05-30 12:44:02 +01:00
vmw_vsock
vsock: avoid to close connected socket after the timeout
2023-05-30 12:44:05 +01:00
wimax
wireless
wifi: cfg80211: rewrite merging of inherited elements
2023-07-27 08:37:10 +02:00
x25
net/x25: Fix to not accept on connected socket
2023-02-22 12:50:26 +01:00
xdp
xsk: Honor SO_BINDTODEVICE on bind
2023-07-27 08:37:23 +02:00
xfrm
xfrm: Check if_id in inbound policy/secpath match
2023-06-09 10:28:56 +02:00
compat.c
Kconfig
Remove DECnet support from kernel
2023-06-21 15:44:10 +02:00
Makefile
Remove DECnet support from kernel
2023-06-21 15:44:10 +02:00
socket.c
net: annotate sk->sk_err write from do_recvmmsg()
2023-05-30 12:44:01 +01:00
sysctl_net.c