• Paul Chaignon's avatar
    bpf: remove incorrect 'verifier bug' warning · 927cb781
    Paul Chaignon authored
    The BPF verifier checks the maximum number of call stack frames twice,
    first in the main CFG traversal (do_check) and then in a subsequent
    traversal (check_max_stack_depth).  If the second check fails, it logs a
    'verifier bug' warning and errors out, as the number of call stack frames
    should have been verified already.
    
    However, the second check may fail without indicating a verifier bug: if
    the excessive function calls reside in dead code, the main CFG traversal
    may not visit them; the subsequent traversal visits all instructions,
    including dead code.
    
    This case raises the question of how invalid dead code should be treated.
    This patch implements the conservative option and rejects such code.
    Signed-off-by: default avatarPaul Chaignon <paul.chaignon@orange.com>
    Tested-by: default avatarXiao Han <xiao.han@orange.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    927cb781
verifier.c 228 KB