• Daniel Borkmann's avatar
    uaccess: Add strict non-pagefault kernel-space read function · 75a1a607
    Daniel Borkmann authored
    Add two new probe_kernel_read_strict() and strncpy_from_unsafe_strict()
    helpers which by default alias to the __probe_kernel_read() and the
    __strncpy_from_unsafe(), respectively, but can be overridden by archs
    which have non-overlapping address ranges for kernel space and user
    space in order to bail out with -EFAULT when attempting to probe user
    memory including non-canonical user access addresses [0]:
    
      4-level page tables:
        user-space mem: 0x0000000000000000 - 0x00007fffffffffff
        non-canonical:  0x0000800000000000 - 0xffff7fffffffffff
    
      5-level page tables:
        user-space mem: 0x0000000000000000 - 0x00ffffffffffffff
        non-canonical:  0x0100000000000000 - 0xfeffffffffffffff
    
    The idea is that these helpers are complementary to the probe_user_read()
    and strncpy_from_unsafe_user() which probe user-only memory. Both added
    helpers here do the same, but for kernel-only addresses.
    
    Both set of helpers are going to be used for BPF tracing. Th...
    75a1a607
Makefile 1.8 KB