================================================================== BUG: KASAN: slab-out-of-bounds in memcpy include/linux/string.h:347 [inline] BUG: KASAN: slab-out-of-bounds in soft_cursor+0x445/0xa40 drivers/video/fbdev/core/softcursor.c:70 Read of size 32 at addr ffff88809776b1d0 by task kworker/1:3/7502 CPU: 1 PID: 7502 Comm: kworker/1:3 Not tainted 4.14.172-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events_power_efficient fb_flashcursor Call Trace: __dump_stack lib/dump_stack.c:17 [inline] dump_stack+0x13e/0x194 lib/dump_stack.c:58 print_address_description.cold+0x7c/0x1e2 mm/kasan/report.c:252 kasan_report_error mm/kasan/report.c:351 [inline] kasan_report mm/kasan/report.c:409 [inline] kasan_report.cold+0xa9/0x2ae mm/kasan/report.c:393 memcpy+0x20/0x50 mm/kasan/kasan.c:302 memcpy include/linux/string.h:347 [inline] soft_cursor+0x445/0xa40 drivers/video/fbdev/core/softcursor.c:70 bit_cursor+0x10d9/0x1700 drivers/video/fbdev/core/bitblit.c:386 fb_flashcursor+0x360/0x400 drivers/video/fbdev/core/fbcon.c:393 process_one_work+0x813/0x1540 kernel/workqueue.c:2114 worker_thread+0x5d1/0x1070 kernel/workqueue.c:2248 kthread+0x30d/0x420 kernel/kthread.c:232 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404 Allocated by task 26560: save_stack+0x32/0xa0 mm/kasan/kasan.c:447 set_track mm/kasan/kasan.c:459 [inline] kasan_kmalloc mm/kasan/kasan.c:551 [inline] kasan_kmalloc+0xbf/0xe0 mm/kasan/kasan.c:529 __do_kmalloc mm/slab.c:3720 [inline] __kmalloc+0x15b/0x7c0 mm/slab.c:3729 kmalloc include/linux/slab.h:493 [inline] fbcon_set_font+0x2f8/0x7c0 drivers/video/fbdev/core/fbcon.c:2618 con_font_set drivers/tty/vt/vt.c:4162 [inline] con_font_op+0xb73/0xf70 drivers/tty/vt/vt.c:4227 vt_ioctl+0xaf8/0x1f00 drivers/tty/vt/vt_ioctl.c:918 tty_ioctl+0x6c5/0x1220 drivers/tty/tty_io.c:2661 vfs_ioctl fs/ioctl.c:46 [inline] file_ioctl fs/ioctl.c:500 [inline] do_vfs_ioctl+0x75a/0xfe0 fs/ioctl.c:684 SYSC_ioctl fs/ioctl.c:701 [inline] SyS_ioctl+0x7f/0xb0 fs/ioctl.c:692 do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x42/0xb7 Freed by task 25190: save_stack+0x32/0xa0 mm/kasan/kasan.c:447 set_track mm/kasan/kasan.c:459 [inline] kasan_slab_free+0x75/0xc0 mm/kasan/kasan.c:524 __cache_free mm/slab.c:3496 [inline] kfree+0xcb/0x260 mm/slab.c:3815 kvfree+0x45/0x50 mm/util.c:416 __do_replace+0x3f6/0x580 net/ipv6/netfilter/ip6_tables.c:1107 do_replace net/ipv6/netfilter/ip6_tables.c:1161 [inline] do_ip6t_set_ctl+0x255/0x3a3 net/ipv6/netfilter/ip6_tables.c:1685 nf_sockopt net/netfilter/nf_sockopt.c:106 [inline] nf_setsockopt+0x5f/0xb0 net/netfilter/nf_sockopt.c:115 ipv6_setsockopt net/ipv6/ipv6_sockglue.c:930 [inline] ipv6_setsockopt+0xfd/0x130 net/ipv6/ipv6_sockglue.c:914 tcp_setsockopt net/ipv4/tcp.c:2826 [inline] tcp_setsockopt+0x7b/0xc0 net/ipv4/tcp.c:2820 SYSC_setsockopt net/socket.c:1865 [inline] SyS_setsockopt+0x110/0x1e0 net/socket.c:1844 do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292 entry_SYSCALL_64_after_hwframe+0x42/0xb7 The buggy address belongs to the object at ffff88809776adc0 which belongs to the cache kmalloc-2048 of size 2048 The buggy address is located 1040 bytes inside of 2048-byte region [ffff88809776adc0, ffff88809776b5c0) The buggy address belongs to the page: page:ffffea00025dda80 count:1 mapcount:0 mapping:ffff88809776a540 index:0xffff88809776b640 compound_mapcount: 0 flags: 0xfffe0000008100(slab|head) raw: 00fffe0000008100 ffff88809776a540 ffff88809776b640 0000000100000002 raw: ffffea00015878a0 ffffea00014df120 ffff88812fe56c40 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff88809776b080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff88809776b100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff88809776b180: 00 00 00 00 00 00 00 00 00 00 fc fc fc fc fc fc ^ ffff88809776b200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff88809776b280: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ==================================================================