• Alexei Starovoitov's avatar
    bpf: handle pseudo BPF_LD_IMM64 insn · 0246e64d
    Alexei Starovoitov authored
    eBPF programs passed from userspace are using pseudo BPF_LD_IMM64 instructions
    to refer to process-local map_fd. Scan the program for such instructions and
    if FDs are valid, convert them to 'struct bpf_map' pointers which will be used
    by verifier to check access to maps in bpf_map_lookup/update() calls.
    If program passes verifier, convert pseudo BPF_LD_IMM64 into generic by dropping
    BPF_PSEUDO_MAP_FD flag.
    
    Note that eBPF interpreter is generic and knows nothing about pseudo insns.
    Signed-off-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0246e64d
verifier.c 16 KB