On Mon, Feb 22, 2016 at 04:25:57PM -0800, Ben Pfaff wrote:
> 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")

We have given enough time for Yi Ba, and given him credit. And I have tested
that it fixes the crash. So,

Signed-off-by: Thadeu Lima de Souza Cascardo <casca...@redhat.com>

> > ---
> > 
> > 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

Reply via email to