More specifically, this code in bfd_process_packet() sees p->l7 == NULL and does pointer arithmetic on NULL, which seems bad:
msg = ofpbuf_at(p, (uint8_t *)p->l7 - (uint8_t *)p->data, BFD_PACKET_LEN); On Wed, Oct 16, 2013 at 02:20:15PM -0700, Alex Wang wrote: > Have a question, > > function flow_compose() is called when we specify '-generate' option. in > that case, the packet will not have any l7 data. so, seem to me there is > no change to the output. > > Thanks, > > > On Mon, Sep 30, 2013 at 2:47 PM, Ben Pfaff <b...@nicira.com> wrote: > > > flow_extract() fills in ->l7 but flow_compose() wasn't doing it, which > > confused bfd_process_packet() when invoked via the ofproto/trace appctl > > command. > > > > Signed-off-by: Ben Pfaff <b...@nicira.com> > > --- > > lib/flow.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/lib/flow.c b/lib/flow.c > > index 0678c6f..7372e3b 100644 > > --- a/lib/flow.c > > +++ b/lib/flow.c > > @@ -1032,6 +1032,7 @@ flow_compose(struct ofpbuf *b, const struct flow > > *flow) > > icmp->icmp_code = ntohs(flow->tp_dst); > > icmp->icmp_csum = csum(icmp, ICMP_HEADER_LEN); > > } > > + b->l7 = ofpbuf_tail(b); > > } > > > > ip = b->l3; > > -- > > 1.7.10.4 > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev > > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev