On 01/05/2018 23:22, Alexei Starovoitov wrote:
...
[ 27.784931] ? bpf_int_jit_compile+0x7ac/0xab0
[ 27.785475] bpf_int_jit_compile+0x2b6/0xab0
[ 27.786001] ? do_jit+0x6020/0x6020
[ 27.786428] ? kasan_kmalloc+0xa0/0xd0
[ 27.786885] bpf_check+0x2c05/0x4c40
[ 27.787346] ? fixup_bpf_calls+0x1140/0x1140
[ 27.787865] ? kasan_unpoison_shadow+0x30/0x40
[ 27.788406] ? kasan_kmalloc+0xa0/0xd0
[ 27.788865] ? memset+0x1f/0x40
[ 27.789255] ? bpf_obj_name_cpy+0x2d/0x200
[ 27.789750] bpf_prog_load+0xb07/0xeb0
simply running test_verifier with JIT and kasan on.
Ah, sorry, I should add "sysctl net/core/bpf_jit_enable=1" to my test
script, error reproduced.
convert_ctx_accesses and fixup_bpf_calls might insert ebpf insns that
prog->len would change.
The new fake "exit" subprog whose .start offset is prog->len should be
updated as well.
The "for" condition in adjust_subprog_starts:
for (i = 0; i < env->subprog_cnt; i++) {
need to be changed into:
for (i = 0; i <= env->subprog_cnt; i++) {
Will respin the patch set.
Thanks.
Regards,
Jiong