• Jiong Wang's avatar
    bpf: add faked "ending" subprog · 4cb3d99c
    Jiong Wang authored
    There are quite a few code snippet like the following in verifier:
    
           subprog_start = 0;
           if (env->subprog_cnt == cur_subprog + 1)
                   subprog_end = insn_cnt;
           else
                   subprog_end = env->subprog_info[cur_subprog + 1].start;
    
    The reason is there is no marker in subprog_info array to tell the end of
    it.
    
    We could resolve this issue by introducing a faked "ending" subprog.
    The special "ending" subprog is with "insn_cnt" as start offset, so it is
    serving as the end mark whenever we iterate over all subprogs.
    Signed-off-by: default avatarJiong Wang <jiong.wang@netronome.com>
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    4cb3d99c
verifier.c 170 KB