This patch seems obviously correct to me, so whenever you give me a Signed-off-by, I'll apply it.
On Wed, Feb 17, 2016 at 12:43:56PM -0200, Thadeu Lima de Souza Cascardo wrote: > The revalidator thread may set may_learn and call xlate_actions with no packet > data. If the revalidated flow is IGMPv3 or MLD, vswitchd will crash when > trying > to access the NULL packet. > > Only process IGMP and MLD flows when there is a packet. This is a similar > behavior than what we have for other special packets. > > Not-Signed-off-yet: Thadeu Lima de Souza Cascardo <casca...@redhat.com> > Reported-by: Yi Ba <yby.develo...@yahoo.com> > Reported-at: http://openvswitch.org/pipermail/discuss/2016-January/020023.html > Fixes: 06994f879c9d ("mcast-snooping: Add Multicast Listener Discovery > support") > --- > > Hi, Yi Ba. > > Can you test this patch for your mcast_snooping bug? Remember to enable > OVS_ENABLE_SG_FIREWALL_MULTICAST again. In order to verify it's working, you > can > run ovs-vsctl get bridge br-ex mcast_snooping_enable. > > Thanks. > Cascardo. > > --- > AUTHORS | 1 + > ofproto/ofproto-dpif-xlate.c | 4 ++-- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/AUTHORS b/AUTHORS > index 936394d..366b72f 100644 > --- a/AUTHORS > +++ b/AUTHORS > @@ -412,6 +412,7 @@ Vishal Swarankar vishal.swarn...@gmail.com > Vjekoslav Brajkovic bal...@cs.washington.edu > Voravit T. vora...@kth.se > Yeming Zhao zhaoyem...@gmail.com > +Yi Ba yby.develo...@yahoo.com > Ying Chen yingc...@vmware.com > Yongqiang Liu liuyq7...@gmail.com > ZHANG Zhiming zhangzhim...@yunshan.net.cn > diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c > index a6ea067..7195d45 100644 > --- a/ofproto/ofproto-dpif-xlate.c > +++ b/ofproto/ofproto-dpif-xlate.c > @@ -2409,7 +2409,7 @@ xlate_normal(struct xlate_ctx *ctx) > if (is_igmp(flow)) { > if (mcast_snooping_is_membership(flow->tp_src) || > mcast_snooping_is_query(flow->tp_src)) { > - if (ctx->xin->may_learn) { > + if (ctx->xin->may_learn && ctx->xin->packet) { > update_mcast_snooping_table(ctx->xbridge, flow, vlan, > in_xbundle, > ctx->xin->packet); > } > @@ -2441,7 +2441,7 @@ xlate_normal(struct xlate_ctx *ctx) > return; > } else if (is_mld(flow)) { > ctx->xout->slow |= SLOW_ACTION; > - if (ctx->xin->may_learn) { > + if (ctx->xin->may_learn && ctx->xin->packet) { > update_mcast_snooping_table(ctx->xbridge, flow, vlan, > in_xbundle, ctx->xin->packet); > } > -- > 2.5.0 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev