ebpf中的有界循环。现在,验证者是否检查程序是否为DAG?

时间:2019-09-07 11:24:23

标签: c kernel bpf ebpf

由于ebpf程序https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/commit/?id=2589726d12a1b12eaaa93c7f1ea64287e383c7a5现在允许有界循环 程序控制流是否是直接非循环图,验证程序仍会在第一遍中进行检查吗?

1 个答案:

答案 0 :(得分:2)

是的,it still does,在两种情况下会拒绝带有后边缘的程序:

  • 如果程序由非特权用户加载。 env->allow_ptr_leaks布尔值表示特权用户。
  • 如果后沿是performed using a call只有普通的跳转才能产生有界循环(这并不意味着您不能在有界循环内进行从bpf到bpf的调用 )。