• David Miller's avatar
    bpf: Fix values type used in test_maps · 89087c45
    David Miller authored
    Maps of per-cpu type have their value element size adjusted to 8 if it
    is specified smaller during various map operations.
    
    This makes test_maps as a 32-bit binary fail, in fact the kernel
    writes past the end of the value's array on the user's stack.
    
    To be quite honest, I think the kernel should reject creation of a
    per-cpu map that doesn't have a value size of at least 8 if that's
    what the kernel is going to silently adjust to later.
    
    If the user passed something smaller, it is a sizeof() calcualtion
    based upon the type they will actually use (just like in this testcase
    code) in later calls to the map operations.
    
    Fixes: df570f57 ("samples/bpf: unit test for BPF_MAP_TYPE_PERCPU_ARRAY")
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Acked-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
    89087c45
test_maps.c 13.8 KB