[ovs-dev] [PATCH] ofp-util: Reject bad group type and command with error instead of abort.

Ben Pfaff blp at ovn.org
Tue Dec 1 18:39:20 UTC 2015


On Mon, Nov 30, 2015 at 09:05:54PM -0200, Flavio Leitner wrote:
> On Sun, Nov 29, 2015 at 11:02:02AM -0800, Ben Pfaff wrote:
> > On Thu, Nov 26, 2015 at 05:20:54PM -0200, Flavio Leitner wrote:
> > > On Mon, Oct 12, 2015 at 10:10:27AM -0700, Ben Pfaff wrote:
> > > > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > > > Reported-by: Manpreet Singh <er.manpreet25 at gmail.com>
> > > > Reported-at: http://openvswitch.org/pipermail/discuss/2015-October/019048.html
> > > > ---
> > > >  AUTHORS        | 1 +
> > > >  lib/ofp-util.c | 4 ++--
> > > >  2 files changed, 3 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git a/AUTHORS b/AUTHORS
> > > > index 99bcf60..8123f43 100644
> > > > --- a/AUTHORS
> > > > +++ b/AUTHORS
> > > > @@ -310,6 +310,7 @@ Len Gao                 leng at vmware.com
> > > >  Logan Rosen             logatronico at gmail.com
> > > >  Luca Falavigna          dktrkranz at debian.org
> > > >  Luiz Henrique Ozaki     luiz.ozaki at gmail.com
> > > > +Manpreet Singh          er.manpreet25 at gmail.com
> > > >  Marco d'Itri            md at Linux.IT
> > > >  Martin Vizvary          vizvary at ics.muni.cz
> > > >  Marvin Pascual          marvin at pascual.com.ph
> > > > diff --git a/lib/ofp-util.c b/lib/ofp-util.c
> > > > index b9dbcda..f0f6319 100644
> > > > --- a/lib/ofp-util.c
> > > > +++ b/lib/ofp-util.c
> > > > @@ -8679,7 +8679,7 @@ ofputil_decode_group_mod(const struct ofp_header *oh,
> > > >      case OFPGT11_FF:
> > > >          break;
> > > >      default:
> > > > -        OVS_NOT_REACHED();
> > > > +        return OFPERR_OFPGMFC_BAD_TYPE;
> > > 
> > > This looks correct.
> > > 
> > > 
> > > >      }
> > > >  
> > > >      switch (gm->command) {
> > > > @@ -8694,7 +8694,7 @@ ofputil_decode_group_mod(const struct ofp_header *oh,
> > > >          }
> > > >          break;
> > > >      default:
> > > > -        OVS_NOT_REACHED();
> > > > +        return OFPERR_OFPGMFC_BAD_COMMAND;
> > > 
> > > This too.
> > > >      }
> > > >  
> > > >      LIST_FOR_EACH (bucket, list_node, &gm->buckets) {
> > > 
> > > But then it continues iterating over the buckets checking the
> > > gm->type:
> > > ...
> > >         default:
> > >             OVS_NOT_REACHED();
> > >         }
> > > Shouldn't that also returns OFPERR_OFPGMFC_BAD_TYPE?
> > 
> > Here we genuinely can't get any invalid types because the first "switch"
> > statement in the function has verified gm->type.
> 
> Indeed, that is the case now.  However, if we copy&paste that piece of
> code somewhere else or change the function in the future, then the issue
> might get reintroduced.

OK, I sent out a patch, CCing you.



More information about the dev mailing list