Thank you, I pushed this.

On Tue, Oct 18, 2011 at 12:56:20PM -0700, Ethan Jackson wrote:
> Looks good.
> 
> Ethan
> 
> On Tue, Sep 27, 2011 at 16:59, Ben Pfaff <[email protected]> wrote:
> > Otherwise, "table=257" (e.g.) was silently accepted but had a surprising
> > effect.
> >
> > Bug #7445.
> > Reported-by: Michael Mao <[email protected]>
> > ---
> > ?lib/ofp-parse.c | ? 30 ++++++++++++++++++++++++++----
> > ?1 files changed, 26 insertions(+), 4 deletions(-)
> >
> > diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c
> > index fd0a72e..75859b5 100644
> > --- a/lib/ofp-parse.c
> > +++ b/lib/ofp-parse.c
> > @@ -41,6 +41,28 @@
> >
> > ?VLOG_DEFINE_THIS_MODULE(ofp_parse);
> >
> > +static uint8_t
> > +str_to_table_id(const char *str)
> > +{
> > + ? ?int table_id;
> > +
> > + ? ?if (!str_to_int(str, 10, &table_id) || table_id < 0 || table_id > 255) 
> > {
> > + ? ? ? ?ovs_fatal(0, "invalid table \"%s\"", str);
> > + ? ?}
> > + ? ?return table_id;
> > +}
> > +
> > +static uint16_t
> > +str_to_u16(const char *str, const char *name)
> > +{
> > + ? ?int value;
> > +
> > + ? ?if (!str_to_int(str, 0, &value) || value < 0 || value > 65535) {
> > + ? ? ? ?ovs_fatal(0, "invalid %s \"%s\"", name, str);
> > + ? ?}
> > + ? ?return value;
> > +}
> > +
> > ?static uint32_t
> > ?str_to_u32(const char *str)
> > ?{
> > @@ -541,15 +563,15 @@ parse_ofp_str(struct ofputil_flow_mod *fm, int 
> > command, const char *str_,
> > ? ? ? ? ? ? }
> >
> > ? ? ? ? ? ? if (!strcmp(name, "table")) {
> > - ? ? ? ? ? ? ? ?fm->table_id = atoi(value);
> > + ? ? ? ? ? ? ? ?fm->table_id = str_to_table_id(value);
> > ? ? ? ? ? ? } else if (!strcmp(name, "out_port")) {
> > ? ? ? ? ? ? ? ? fm->out_port = atoi(value);
> > ? ? ? ? ? ? } else if (fields & F_PRIORITY && !strcmp(name, "priority")) {
> > - ? ? ? ? ? ? ? ?fm->cr.priority = atoi(value);
> > + ? ? ? ? ? ? ? ?fm->cr.priority = str_to_u16(value, name);
> > ? ? ? ? ? ? } else if (fields & F_TIMEOUT && !strcmp(name, "idle_timeout")) 
> > {
> > - ? ? ? ? ? ? ? ?fm->idle_timeout = atoi(value);
> > + ? ? ? ? ? ? ? ?fm->idle_timeout = str_to_u16(value, name);
> > ? ? ? ? ? ? } else if (fields & F_TIMEOUT && !strcmp(name, "hard_timeout")) 
> > {
> > - ? ? ? ? ? ? ? ?fm->hard_timeout = atoi(value);
> > + ? ? ? ? ? ? ? ?fm->hard_timeout = str_to_u16(value, name);
> > ? ? ? ? ? ? } else if (fields & F_COOKIE && !strcmp(name, "cookie")) {
> > ? ? ? ? ? ? ? ? fm->cookie = htonll(str_to_u64(value));
> > ? ? ? ? ? ? } else if (mf_from_name(name)) {
> > --
> > 1.7.4.4
> >
> > _______________________________________________
> > dev mailing list
> > [email protected]
> > http://openvswitch.org/mailman/listinfo/dev
> >
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to