memory leak in __ieee80211_beacon_get

From: syzbot
Date: Sun Feb 07 2021 - 02:23:34 EST


Hello,

syzbot found the following issue on:

HEAD commit: 3aaf0a27 Merge tag 'clang-format-for-linux-v5.11-rc7' of g..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=10f79330d00000
kernel config: https://syzkaller.appspot.com/x/.config?x=b7edd79f26f7c0c3
dashboard link: https://syzkaller.appspot.com/bug?extid=e832ab33619901afc64a
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=13e46a40d00000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+e832ab33619901afc64a@xxxxxxxxxxxxxxxxxxxxxxxxx

BUG: memory leak
unreferenced object 0xffff88811682b500 (size 232):
comm "softirq", pid 0, jiffies 4295119192 (age 15.070s)
hex dump (first 32 bytes):
10 c5 79 16 81 88 ff ff 10 c5 79 16 81 88 ff ff ..y.......y.....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<0000000092ce1185>] __alloc_skb+0x6d/0x280 net/core/skbuff.c:198
[<0000000027006abe>] __netdev_alloc_skb+0x6a/0x210 net/core/skbuff.c:446
[<00000000bbb79fe8>] netdev_alloc_skb include/linux/skbuff.h:2832 [inline]
[<00000000bbb79fe8>] dev_alloc_skb include/linux/skbuff.h:2845 [inline]
[<00000000bbb79fe8>] __ieee80211_beacon_get+0x662/0x7a0 net/mac80211/tx.c:4814
[<00000000d5da7a17>] ieee80211_beacon_get_tim+0x47/0x1c0 net/mac80211/tx.c:4928
[<0000000042c1663d>] ieee80211_beacon_get include/net/mac80211.h:4918 [inline]
[<0000000042c1663d>] mac80211_hwsim_beacon_tx+0xa1/0x2c0 drivers/net/wireless/mac80211_hwsim.c:1729
[<00000000681dd69b>] __iterate_interfaces+0x125/0x260 net/mac80211/util.c:793
[<00000000025fd347>] ieee80211_iterate_active_interfaces_atomic+0x2e/0x40 net/mac80211/util.c:829
[<00000000c135ff4a>] mac80211_hwsim_beacon+0x52/0xb0 drivers/net/wireless/mac80211_hwsim.c:1782
[<0000000018e3b983>] __run_hrtimer kernel/time/hrtimer.c:1519 [inline]
[<0000000018e3b983>] __hrtimer_run_queues+0x1ba/0x470 kernel/time/hrtimer.c:1583
[<00000000ac9fbd2f>] hrtimer_run_softirq+0x7e/0x100 kernel/time/hrtimer.c:1600
[<000000003b2a8015>] __do_softirq+0xbf/0x2ab kernel/softirq.c:343
[<00000000cfba3969>] asm_call_irq_on_stack+0xf/0x20
[<00000000a2e1da95>] __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
[<00000000a2e1da95>] run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
[<00000000a2e1da95>] do_softirq_own_stack+0x32/0x40 arch/x86/kernel/irq_64.c:77
[<0000000075748e36>] invoke_softirq kernel/softirq.c:226 [inline]
[<0000000075748e36>] __irq_exit_rcu kernel/softirq.c:420 [inline]
[<0000000075748e36>] irq_exit_rcu+0x93/0xc0 kernel/softirq.c:432
[<000000006645e04e>] sysvec_apic_timer_interrupt+0x36/0x80 arch/x86/kernel/apic/apic.c:1096
[<00000000cffb1ca1>] asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:629

BUG: memory leak
unreferenced object 0xffff88811682db00 (size 232):
comm "softirq", pid 0, jiffies 4295119192 (age 15.070s)
hex dump (first 32 bytes):
10 c5 6b 16 81 88 ff ff 10 c5 6b 16 81 88 ff ff ..k.......k.....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<0000000092ce1185>] __alloc_skb+0x6d/0x280 net/core/skbuff.c:198
[<0000000027006abe>] __netdev_alloc_skb+0x6a/0x210 net/core/skbuff.c:446
[<00000000bbb79fe8>] netdev_alloc_skb include/linux/skbuff.h:2832 [inline]
[<00000000bbb79fe8>] dev_alloc_skb include/linux/skbuff.h:2845 [inline]
[<00000000bbb79fe8>] __ieee80211_beacon_get+0x662/0x7a0 net/mac80211/tx.c:4814
[<00000000d5da7a17>] ieee80211_beacon_get_tim+0x47/0x1c0 net/mac80211/tx.c:4928
[<0000000042c1663d>] ieee80211_beacon_get include/net/mac80211.h:4918 [inline]
[<0000000042c1663d>] mac80211_hwsim_beacon_tx+0xa1/0x2c0 drivers/net/wireless/mac80211_hwsim.c:1729
[<00000000681dd69b>] __iterate_interfaces+0x125/0x260 net/mac80211/util.c:793
[<00000000025fd347>] ieee80211_iterate_active_interfaces_atomic+0x2e/0x40 net/mac80211/util.c:829
[<00000000c135ff4a>] mac80211_hwsim_beacon+0x52/0xb0 drivers/net/wireless/mac80211_hwsim.c:1782
[<0000000018e3b983>] __run_hrtimer kernel/time/hrtimer.c:1519 [inline]
[<0000000018e3b983>] __hrtimer_run_queues+0x1ba/0x470 kernel/time/hrtimer.c:1583
[<00000000ac9fbd2f>] hrtimer_run_softirq+0x7e/0x100 kernel/time/hrtimer.c:1600
[<000000003b2a8015>] __do_softirq+0xbf/0x2ab kernel/softirq.c:343
[<00000000cfba3969>] asm_call_irq_on_stack+0xf/0x20
[<00000000a2e1da95>] __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
[<00000000a2e1da95>] run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
[<00000000a2e1da95>] do_softirq_own_stack+0x32/0x40 arch/x86/kernel/irq_64.c:77
[<0000000075748e36>] invoke_softirq kernel/softirq.c:226 [inline]
[<0000000075748e36>] __irq_exit_rcu kernel/softirq.c:420 [inline]
[<0000000075748e36>] irq_exit_rcu+0x93/0xc0 kernel/softirq.c:432
[<000000006645e04e>] sysvec_apic_timer_interrupt+0x36/0x80 arch/x86/kernel/apic/apic.c:1096
[<00000000cffb1ca1>] asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:629

BUG: memory leak
unreferenced object 0xffff888116604400 (size 512):
comm "softirq", pid 0, jiffies 4295119192 (age 15.070s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<00000000d1a2675d>] __kmalloc_reserve net/core/skbuff.c:142 [inline]
[<00000000d1a2675d>] __alloc_skb+0xab/0x280 net/core/skbuff.c:210
[<0000000027006abe>] __netdev_alloc_skb+0x6a/0x210 net/core/skbuff.c:446
[<00000000bbb79fe8>] netdev_alloc_skb include/linux/skbuff.h:2832 [inline]
[<00000000bbb79fe8>] dev_alloc_skb include/linux/skbuff.h:2845 [inline]
[<00000000bbb79fe8>] __ieee80211_beacon_get+0x662/0x7a0 net/mac80211/tx.c:4814
[<00000000d5da7a17>] ieee80211_beacon_get_tim+0x47/0x1c0 net/mac80211/tx.c:4928
[<0000000042c1663d>] ieee80211_beacon_get include/net/mac80211.h:4918 [inline]
[<0000000042c1663d>] mac80211_hwsim_beacon_tx+0xa1/0x2c0 drivers/net/wireless/mac80211_hwsim.c:1729
[<00000000681dd69b>] __iterate_interfaces+0x125/0x260 net/mac80211/util.c:793
[<00000000025fd347>] ieee80211_iterate_active_interfaces_atomic+0x2e/0x40 net/mac80211/util.c:829
[<00000000c135ff4a>] mac80211_hwsim_beacon+0x52/0xb0 drivers/net/wireless/mac80211_hwsim.c:1782
[<0000000018e3b983>] __run_hrtimer kernel/time/hrtimer.c:1519 [inline]
[<0000000018e3b983>] __hrtimer_run_queues+0x1ba/0x470 kernel/time/hrtimer.c:1583
[<00000000ac9fbd2f>] hrtimer_run_softirq+0x7e/0x100 kernel/time/hrtimer.c:1600
[<000000003b2a8015>] __do_softirq+0xbf/0x2ab kernel/softirq.c:343
[<00000000cfba3969>] asm_call_irq_on_stack+0xf/0x20
[<00000000a2e1da95>] __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
[<00000000a2e1da95>] run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
[<00000000a2e1da95>] do_softirq_own_stack+0x32/0x40 arch/x86/kernel/irq_64.c:77
[<0000000075748e36>] invoke_softirq kernel/softirq.c:226 [inline]
[<0000000075748e36>] __irq_exit_rcu kernel/softirq.c:420 [inline]
[<0000000075748e36>] irq_exit_rcu+0x93/0xc0 kernel/softirq.c:432
[<000000006645e04e>] sysvec_apic_timer_interrupt+0x36/0x80 arch/x86/kernel/apic/apic.c:1096
[<00000000cffb1ca1>] asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:629



---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@xxxxxxxxxxxxxxxx.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches