• Alexei Starovoitov's avatar
    bpf: Add abnormal return checks. · 09b28d76
    Alexei Starovoitov authored
    LD_[ABS|IND] instructions may return from the function early. bpf_tail_call
    pseudo instruction is either fallthrough or return. Allow them in the
    subprograms only when subprograms are BTF annotated and have scalar return
    types. Allow ld_abs and tail_call in the main program even if it calls into
    subprograms. In the past that was not ok to do for ld_abs, since it was JITed
    with special exit sequence. Since bpf_gen_ld_abs() was introduced the ld_abs
    looks like normal exit insn from JIT point of view, so it's safe to allow them
    in the main program.
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    09b28d76
verifier.c 335 KB