libbpf: Fix gen_loader assumption on number of programs.
authorAlexei Starovoitov <ast@kernel.org>
Sun, 12 Dec 2021 01:16:19 +0000 (17:16 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Sun, 12 Dec 2021 01:16:19 +0000 (17:16 -0800)
commit259172bb6514758ce3be1610c500b51a9f44212a
tree0aca5192af1b4508645315c2a3fc74d1f12bfba9
parent77ab714f00703c91d5a6e15d7445775c80358774
libbpf: Fix gen_loader assumption on number of programs.

libbpf's obj->nr_programs includes static and global functions. That number
could be higher than the actual number of bpf programs going be loaded by
gen_loader. Passing larger nr_programs to bpf_gen__init() doesn't hurt. Those
exra stack slots will stay as zero. bpf_gen__finish() needs to check that
actual number of progs that gen_loader saw is less than or equal to
obj->nr_programs.

Fixes: ba05fd36b851 ("libbpf: Perform map fd cleanup for gen_loader in case of error")
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/gen_loader.c