• KP Singh's avatar
    bpf, lsm: Fix the file_mprotect LSM test. · 5222d696
    KP Singh authored
    The test was previously using an mprotect on the heap memory allocated
    using malloc and was expecting the allocation to be always using
    sbrk(2). This is, however, not always true and in certain conditions
    malloc may end up using anonymous mmaps for heap alloctions. This means
    that the following condition that is used in the "lsm/file_mprotect"
    program is not sufficent to detect all mprotect calls done on heap
    memory:
    
    	is_heap = (vma->vm_start >= vma->vm_mm->start_brk &&
    		   vma->vm_end <= vma->vm_mm->brk);
    
    The test is updated to use an mprotect on memory allocated on the stack.
    While this would result in the splitting of the vma, this happens only
    after the security_file_mprotect hook. So, the condition used in the BPF
    program holds true.
    
    Fixes: 03e54f10 ("bpf: lsm: Add selftests for BPF_PROG_TYPE_LSM")
    Reported-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Signed-off-by: default avatarKP Singh <kpsingh@google.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20200402200751.26372-1-kpsingh@chromium.org
    5222d696
lsm.c 919 Bytes