bpf: Skip scalar adjustment for BPF_NEG if dst is a pointer
In check_alu_op(), the verifier currently calls check_reg_arg() and adjust_scalar_min_max_vals() unconditionally for BPF_NEG operations. However, if the destination register holds a pointer, these scalar adjustments are unnecessary and potentially incorrect. This patch adds a check to skip the adjustment logic when the destination register contains a pointer. Reported-by:<syzbot+d36d5ae81e1b0a53ef58@syzkaller.appspotmail.com> Closes: https://syzkaller.appspot.com/bug?extid=d36d5ae81e1b0a53ef58 Fixes: aced1325 ("bpf: Add range tracking for BPF_NEG") Suggested-by:
KaFai Wan <kafai.wan@linux.dev> Suggested-by:
Eduard Zingerman <eddyz87@gmail.com> Signed-off-by:
Brahmajit Das <listout@listout.xyz> Acked-by:
Eduard Zingerman <eddyz87@gmail.com> Link: https://lore.kernel.org/r/20251001191739.2323644-2-listout@listout.xyz Signed-off-by:
Alexei Starovoitov <ast@kernel.org>
Loading
Please sign in to comment