Looks good. Ethan
On Tue, Sep 27, 2011 at 16:59, Ben Pfaff <b...@nicira.com> wrote: > Otherwise, "table=257" (e.g.) was silently accepted but had a surprising > effect. > > Bug #7445. > Reported-by: Michael Mao <m...@nicira.com> > --- > 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 > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev