• Hou Tao's avatar
    bpf: Use VM_MAP instead of VM_ALLOC for ringbuf · b293dcc4
    Hou Tao authored
    After commit 2fd3fb0be1d1 ("kasan, vmalloc: unpoison VM_ALLOC pages
    after mapping"), non-VM_ALLOC mappings will be marked as accessible
    in __get_vm_area_node() when KASAN is enabled. But now the flag for
    ringbuf area is VM_ALLOC, so KASAN will complain out-of-bound access
    after vmap() returns. Because the ringbuf area is created by mapping
    allocated pages, so use VM_MAP instead.
    
    After the change, info in /proc/vmallocinfo also changes from
      [start]-[end]   24576 ringbuf_map_alloc+0x171/0x290 vmalloc user
    to
      [start]-[end]   24576 ringbuf_map_alloc+0x171/0x290 vmap user
    
    Fixes: 457f4436 ("bpf: Implement BPF ring buffer and verifier support for it")
    Reported-by: syzbot+5ad567a418794b9b5983@syzkaller.appspotmail.com
    Signed-off-by: default avatarHou Tao <houtao1@huawei.com>
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20220202060158.6260-1-houtao1@huawei.com
    b293dcc4
ringbuf.c 12.7 KB