Re: [PATCH 6/6] ebpf: allow BPF_REG_X in src_reg conditional jumps

Alexei Starovoitov
2015-09-05T04:13:06Z

On Fri, Sep 04, 2015 at 04:43:50PM -0600, Tycho Andersen wrote:
> > The fix should be something like this:
> > diff --git a/net/core/filter.c b/net/core/filter.c
> > index 13079f03902e..05a04ea87172 100644
> > --- a/net/core/filter.c
> > +++ b/net/core/filter.c
> > @@ -478,9 +478,9 @@ do_pass:
> > bpf_src = BPF_X;
> > } else {
> > insn->dst_reg = BPF_REG_A;
> > - insn->src_reg = BPF_REG_X;
> > insn->imm = fp->k;
> > bpf_src = BPF_SRC(fp->code);
> > + insn->src_reg = bpf_src == BPF_X ? BPF_REG_X : 0;
> > }
>
> Yep, I just tested this and it works for me. Do you want to manage it
> or should I carry it as part of this set?

Though it's a bug, it doesn't affect anything at the moment
and not worth fixing in net, so please submit it as separate bug
fix when net-next reopens. imo the rest of the patches should
also go via net-next to minimize cross-tree conflicts.