memory leak in ieee80211_check_fast_xmit

From: syzbot
Date: Thu Sep 24 2020 - 05:27:28 EST


Hello,

syzbot found the following issue on:

HEAD commit: c9c9e6a4 Merge tag 'trace-v5.9-rc5-2' of git://git.kernel...
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13735209900000
kernel config: https://syzkaller.appspot.com/x/.config?x=23de0cdbdd5f681b
dashboard link: https://syzkaller.appspot.com/bug?extid=2e293dbd67de2836ba42
compiler: gcc (GCC) 10.1.0-syz 20200507
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1762d887900000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=174c88ad900000

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

BUG: memory leak
unreferenced object 0xffff888115177200 (size 96):
comm "kworker/u4:0", pid 7, jiffies 4294961513 (age 31.340s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 1e 0a 04 00 00 00 08 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 ..............PP
backtrace:
[<000000007aa91ff2>] kmemdup+0x23/0x50 mm/util.c:127
[<0000000000c381ce>] kmemdup include/linux/string.h:479 [inline]
[<0000000000c381ce>] ieee80211_check_fast_xmit+0x33c/0x590 net/mac80211/tx.c:3103
[<00000000b3947435>] sta_info_move_state+0xbf/0x3e0 net/mac80211/sta_info.c:2024
[<000000008c85d507>] sta_info_pre_move_state net/mac80211/sta_info.h:706 [inline]
[<000000008c85d507>] ieee80211_ibss_finish_sta+0x113/0x180 net/mac80211/ibss.c:587
[<00000000cf829a1b>] ieee80211_ibss_work+0xfc/0x430 net/mac80211/ibss.c:1699
[<00000000beb78158>] ieee80211_iface_work+0x3d0/0x440 net/mac80211/iface.c:1438
[<000000001352d51f>] process_one_work+0x213/0x4d0 kernel/workqueue.c:2269
[<000000005e0a2f8f>] worker_thread+0x58/0x4b0 kernel/workqueue.c:2415
[<000000007ed18dcd>] kthread+0x164/0x190 kernel/kthread.c:292
[<000000005a47bdfe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888115177200 (size 96):
comm "kworker/u4:0", pid 7, jiffies 4294961513 (age 31.420s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 1e 0a 04 00 00 00 08 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 ..............PP
backtrace:
[<000000007aa91ff2>] kmemdup+0x23/0x50 mm/util.c:127
[<0000000000c381ce>] kmemdup include/linux/string.h:479 [inline]
[<0000000000c381ce>] ieee80211_check_fast_xmit+0x33c/0x590 net/mac80211/tx.c:3103
[<00000000b3947435>] sta_info_move_state+0xbf/0x3e0 net/mac80211/sta_info.c:2024
[<000000008c85d507>] sta_info_pre_move_state net/mac80211/sta_info.h:706 [inline]
[<000000008c85d507>] ieee80211_ibss_finish_sta+0x113/0x180 net/mac80211/ibss.c:587
[<00000000cf829a1b>] ieee80211_ibss_work+0xfc/0x430 net/mac80211/ibss.c:1699
[<00000000beb78158>] ieee80211_iface_work+0x3d0/0x440 net/mac80211/iface.c:1438
[<000000001352d51f>] process_one_work+0x213/0x4d0 kernel/workqueue.c:2269
[<000000005e0a2f8f>] worker_thread+0x58/0x4b0 kernel/workqueue.c:2415
[<000000007ed18dcd>] kthread+0x164/0x190 kernel/kthread.c:292
[<000000005a47bdfe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888115177200 (size 96):
comm "kworker/u4:0", pid 7, jiffies 4294961513 (age 31.500s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 1e 0a 04 00 00 00 08 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 ..............PP
backtrace:
[<000000007aa91ff2>] kmemdup+0x23/0x50 mm/util.c:127
[<0000000000c381ce>] kmemdup include/linux/string.h:479 [inline]
[<0000000000c381ce>] ieee80211_check_fast_xmit+0x33c/0x590 net/mac80211/tx.c:3103
[<00000000b3947435>] sta_info_move_state+0xbf/0x3e0 net/mac80211/sta_info.c:2024
[<000000008c85d507>] sta_info_pre_move_state net/mac80211/sta_info.h:706 [inline]
[<000000008c85d507>] ieee80211_ibss_finish_sta+0x113/0x180 net/mac80211/ibss.c:587
[<00000000cf829a1b>] ieee80211_ibss_work+0xfc/0x430 net/mac80211/ibss.c:1699
[<00000000beb78158>] ieee80211_iface_work+0x3d0/0x440 net/mac80211/iface.c:1438
[<000000001352d51f>] process_one_work+0x213/0x4d0 kernel/workqueue.c:2269
[<000000005e0a2f8f>] worker_thread+0x58/0x4b0 kernel/workqueue.c:2415
[<000000007ed18dcd>] kthread+0x164/0x190 kernel/kthread.c:292
[<000000005a47bdfe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888115177200 (size 96):
comm "kworker/u4:0", pid 7, jiffies 4294961513 (age 31.580s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 1e 0a 04 00 00 00 08 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 ..............PP
backtrace:
[<000000007aa91ff2>] kmemdup+0x23/0x50 mm/util.c:127
[<0000000000c381ce>] kmemdup include/linux/string.h:479 [inline]
[<0000000000c381ce>] ieee80211_check_fast_xmit+0x33c/0x590 net/mac80211/tx.c:3103
[<00000000b3947435>] sta_info_move_state+0xbf/0x3e0 net/mac80211/sta_info.c:2024
[<000000008c85d507>] sta_info_pre_move_state net/mac80211/sta_info.h:706 [inline]
[<000000008c85d507>] ieee80211_ibss_finish_sta+0x113/0x180 net/mac80211/ibss.c:587
[<00000000cf829a1b>] ieee80211_ibss_work+0xfc/0x430 net/mac80211/ibss.c:1699
[<00000000beb78158>] ieee80211_iface_work+0x3d0/0x440 net/mac80211/iface.c:1438
[<000000001352d51f>] process_one_work+0x213/0x4d0 kernel/workqueue.c:2269
[<000000005e0a2f8f>] worker_thread+0x58/0x4b0 kernel/workqueue.c:2415
[<000000007ed18dcd>] kthread+0x164/0x190 kernel/kthread.c:292
[<000000005a47bdfe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888115177200 (size 96):
comm "kworker/u4:0", pid 7, jiffies 4294961513 (age 31.660s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 1e 0a 04 00 00 00 08 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 ..............PP
backtrace:
[<000000007aa91ff2>] kmemdup+0x23/0x50 mm/util.c:127
[<0000000000c381ce>] kmemdup include/linux/string.h:479 [inline]
[<0000000000c381ce>] ieee80211_check_fast_xmit+0x33c/0x590 net/mac80211/tx.c:3103
[<00000000b3947435>] sta_info_move_state+0xbf/0x3e0 net/mac80211/sta_info.c:2024
[<000000008c85d507>] sta_info_pre_move_state net/mac80211/sta_info.h:706 [inline]
[<000000008c85d507>] ieee80211_ibss_finish_sta+0x113/0x180 net/mac80211/ibss.c:587
[<00000000cf829a1b>] ieee80211_ibss_work+0xfc/0x430 net/mac80211/ibss.c:1699
[<00000000beb78158>] ieee80211_iface_work+0x3d0/0x440 net/mac80211/iface.c:1438
[<000000001352d51f>] process_one_work+0x213/0x4d0 kernel/workqueue.c:2269
[<000000005e0a2f8f>] worker_thread+0x58/0x4b0 kernel/workqueue.c:2415
[<000000007ed18dcd>] kthread+0x164/0x190 kernel/kthread.c:292
[<000000005a47bdfe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888115177200 (size 96):
comm "kworker/u4:0", pid 7, jiffies 4294961513 (age 31.740s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 1e 0a 04 00 00 00 08 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 ..............PP
backtrace:
[<000000007aa91ff2>] kmemdup+0x23/0x50 mm/util.c:127
[<0000000000c381ce>] kmemdup include/linux/string.h:479 [inline]
[<0000000000c381ce>] ieee80211_check_fast_xmit+0x33c/0x590 net/mac80211/tx.c:3103
[<00000000b3947435>] sta_info_move_state+0xbf/0x3e0 net/mac80211/sta_info.c:2024
[<000000008c85d507>] sta_info_pre_move_state net/mac80211/sta_info.h:706 [inline]
[<000000008c85d507>] ieee80211_ibss_finish_sta+0x113/0x180 net/mac80211/ibss.c:587
[<00000000cf829a1b>] ieee80211_ibss_work+0xfc/0x430 net/mac80211/ibss.c:1699
[<00000000beb78158>] ieee80211_iface_work+0x3d0/0x440 net/mac80211/iface.c:1438
[<000000001352d51f>] process_one_work+0x213/0x4d0 kernel/workqueue.c:2269
[<000000005e0a2f8f>] worker_thread+0x58/0x4b0 kernel/workqueue.c:2415
[<000000007ed18dcd>] kthread+0x164/0x190 kernel/kthread.c:292
[<000000005a47bdfe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888115177200 (size 96):
comm "kworker/u4:0", pid 7, jiffies 4294961513 (age 31.820s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 1e 0a 04 00 00 00 08 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 ..............PP
backtrace:
[<000000007aa91ff2>] kmemdup+0x23/0x50 mm/util.c:127
[<0000000000c381ce>] kmemdup include/linux/string.h:479 [inline]
[<0000000000c381ce>] ieee80211_check_fast_xmit+0x33c/0x590 net/mac80211/tx.c:3103
[<00000000b3947435>] sta_info_move_state+0xbf/0x3e0 net/mac80211/sta_info.c:2024
[<000000008c85d507>] sta_info_pre_move_state net/mac80211/sta_info.h:706 [inline]
[<000000008c85d507>] ieee80211_ibss_finish_sta+0x113/0x180 net/mac80211/ibss.c:587
[<00000000cf829a1b>] ieee80211_ibss_work+0xfc/0x430 net/mac80211/ibss.c:1699
[<00000000beb78158>] ieee80211_iface_work+0x3d0/0x440 net/mac80211/iface.c:1438
[<000000001352d51f>] process_one_work+0x213/0x4d0 kernel/workqueue.c:2269
[<000000005e0a2f8f>] worker_thread+0x58/0x4b0 kernel/workqueue.c:2415
[<000000007ed18dcd>] kthread+0x164/0x190 kernel/kthread.c:292
[<000000005a47bdfe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888115177200 (size 96):
comm "kworker/u4:0", pid 7, jiffies 4294961513 (age 31.900s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 1e 0a 04 00 00 00 08 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 50 ..............PP
backtrace:
[<000000007aa91ff2>] kmemdup+0x23/0x50 mm/util.c:127
[<0000000000c381ce>] kmemdup include/linux/string.h:479 [inline]
[<0000000000c381ce>] ieee80211_check_fast_xmit+0x33c/0x590 net/mac80211/tx.c:3103
[<00000000b3947435>] sta_info_move_state+0xbf/0x3e0 net/mac80211/sta_info.c:2024
[<000000008c85d507>] sta_info_pre_move_state net/mac80211/sta_info.h:706 [inline]
[<000000008c85d507>] ieee80211_ibss_finish_sta+0x113/0x180 net/mac80211/ibss.c:587
[<00000000cf829a1b>] ieee80211_ibss_work+0xfc/0x430 net/mac80211/ibss.c:1699
[<00000000beb78158>] ieee80211_iface_work+0x3d0/0x440 net/mac80211/iface.c:1438
[<000000001352d51f>] process_one_work+0x213/0x4d0 kernel/workqueue.c:2269
[<000000005e0a2f8f>] worker_thread+0x58/0x4b0 kernel/workqueue.c:2415
[<000000007ed18dcd>] kthread+0x164/0x190 kernel/kthread.c:292
[<000000005a47bdfe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294



---
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