• M
    bpf: btf: Check members of struct/union · 179cde8c
    Martin KaFai Lau 提交于
    This patch checks a few things of struct's members:
    
    1) It has a valid size (e.g. a "const void" is invalid)
    2) A member's size (+ its member's offset) does not exceed
       the containing struct's size.
    3) The member's offset satisfies the alignment requirement
    
    The above can only be done after the needs_resolve member's type
    is resolved.  Hence, the above is done together in
    btf_struct_resolve().
    
    Each possible member's type (e.g. int, enum, modifier...) implements
    the check_member() ops which will be called from btf_struct_resolve().
    Signed-off-by: NMartin KaFai Lau <kafai@fb.com>
    Acked-by: NAlexei Starovoitov <ast@fb.com>
    Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
    179cde8c
btf.c 44.8 KB