* [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
* Re: [PATCH wpan] mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add()
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
0 siblings, 1 reply; 3+ messages in thread
From: Alexander Aring @ 2022-12-04 22:49 UTC (permalink / raw)
To: Wei Yongjun
Cc: Alexander Aring, Stefan Schmidt, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Marcel Holtmann, Wei Yongjun,
linux-wpan, netdev
Hi,
On Wed, Nov 30, 2022 at 4:19 AM Wei Yongjun <weiyongjun@huaweicloud.com> wrote:
>
> 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>
Nice catch. :)
Acked-by: Alexander Aring <aahringo@redhat.com>
- Alex
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH wpan] mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add()
2022-12-04 22:49 ` Alexander Aring
@ 2022-12-05 8:58 ` Stefan Schmidt
0 siblings, 0 replies; 3+ messages in thread
From: Stefan Schmidt @ 2022-12-05 8:58 UTC (permalink / raw)
To: Alexander Aring, Wei Yongjun
Cc: Alexander Aring, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Marcel Holtmann, Wei Yongjun, linux-wpan, netdev
Hello.
On 04.12.22 23:49, Alexander Aring wrote:
> Hi,
>
> On Wed, Nov 30, 2022 at 4:19 AM Wei Yongjun <weiyongjun@huaweicloud.com> wrote:
>>
>> 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>
>
> Nice catch. :)
>
> Acked-by: Alexander Aring <aahringo@redhat.com>
This patch has been applied to the wpan tree and will be
part of the next pull request to net. Thanks!
regards
Stefan Schmidt
^ permalink raw reply [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).