netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH wpan] mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add()
@ 2022-11-30  9:17 Wei Yongjun
  2022-12-04 22:49 ` Alexander Aring
  0 siblings, 1 reply; 3+ messages in thread
From: Wei Yongjun @ 2022-11-30  9:17 UTC (permalink / raw)
  To: Alexander Aring, Stefan Schmidt, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Marcel Holtmann
  Cc: Wei Yongjun, linux-wpan, netdev

From: Wei Yongjun <weiyongjun1@huawei.com>

Kernel fault injection test reports null-ptr-deref as follows:

BUG: kernel NULL pointer dereference, address: 0000000000000008
RIP: 0010:cfg802154_netdev_notifier_call+0x120/0x310 include/linux/list.h:114
Call Trace:
 <TASK>
 raw_notifier_call_chain+0x6d/0xa0 kernel/notifier.c:87
 call_netdevice_notifiers_info+0x6e/0xc0 net/core/dev.c:1944
 unregister_netdevice_many_notify+0x60d/0xcb0 net/core/dev.c:1982
 unregister_netdevice_queue+0x154/0x1a0 net/core/dev.c:10879
 register_netdevice+0x9a8/0xb90 net/core/dev.c:10083
 ieee802154_if_add+0x6ed/0x7e0 net/mac802154/iface.c:659
 ieee802154_register_hw+0x29c/0x330 net/mac802154/main.c:229
 mcr20a_probe+0xaaa/0xcb1 drivers/net/ieee802154/mcr20a.c:1316

ieee802154_if_add() allocates wpan_dev as netdev's private data, but not
init the list in struct wpan_dev. cfg802154_netdev_notifier_call() manage
the list when device register/unregister, and may lead to null-ptr-deref.

Use INIT_LIST_HEAD() on it to initialize it correctly.

Fixes: fcf39e6e88e9 ("ieee802154: add wpan_dev_list")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>

diff --git a/net/mac802154/iface.c b/net/mac802154/iface.c
index d9b50884d34e..f6122ab15449 100644
--- a/net/mac802154/iface.c
+++ b/net/mac802154/iface.c
@@ -650,6 +650,7 @@ ieee802154_if_add(struct ieee802154_local *local, const char *name,
 	sdata->dev = ndev;
 	sdata->wpan_dev.wpan_phy = local->hw.phy;
 	sdata->local = local;
+	INIT_LIST_HEAD(&sdata->wpan_dev.list);
 
 	/* setup type-dependent data */
 	ret = ieee802154_setup_sdata(sdata, type);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-12-05  9:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-30  9:17 [PATCH wpan] mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add() Wei Yongjun
2022-12-04 22:49 ` Alexander Aring
2022-12-05  8:58   ` Stefan Schmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).