• Kees Cook's avatar
    lkdtm: Provide more complete coverage for REFCOUNT tests · 95925c99
    Kees Cook authored
    The existing REFCOUNT_* LKDTM tests were designed only for testing a narrow
    portion of CONFIG_REFCOUNT_FULL. This moves the tests to their own file and
    expands their testing to poke each boundary condition.
    
    Since the protections (CONFIG_REFCOUNT_FULL and x86-fast) use different
    saturation values and reach-zero behavior, those have to be build-time
    set so the tests can actually validate things are happening at the
    right places.
    
    Notably, the x86-fast protection will fail REFCOUNT_INC_ZERO and
    REFCOUNT_ADD_ZERO since those conditions are not checked (only overflow
    is critical to protecting refcount_t). CONFIG_REFCOUNT_FULL will warn for
    each REFCOUNT_*_NEGATIVE test since it provides zero-pinning behaviors
    (which allows it to pass REFCOUNT_INC_ZERO and REFCOUNT_ADD_ZERO).
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    95925c99
lkdtm_refcount.c 8.88 KB