Looks Good.
On Fri, Apr 15, 2011 at 9:41 AM, Ben Pfaff <[email protected]> wrote: > The ctype functions often need casts to be fully C standards compliant. > Here's the full explanation that I used to post to comp.lang.c from time > to time when the issue came up: > > With the to*() and is*() functions, you should be careful to cast > `char' arguments to `unsigned char' before calling them. Type `char' > may be signed or unsigned, depending on your compiler or its > configuration. If `char' is signed, then some characters have > negative values; however, the arguments to is*() and to*() functions > must be nonnegative (or EOF). Casting to `unsigned char' fixes this > problem by forcing the character to the corresponding positive value. > > This fixes the following warnings from some version of GCC: > > lib/ofp-parse.c:828: warning: array subscript has type 'char' > lib/ofp-print.c:617: warning: array subscript has type 'char' > > Reported-by: YAMAMOTO Takashi <[email protected]> > --- > AUTHORS | 1 + > lib/ofp-parse.c | 3 ++- > lib/ofp-print.c | 2 +- > 3 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/AUTHORS b/AUTHORS > index bc0f3f6..180428a 100644 > --- a/AUTHORS > +++ b/AUTHORS > @@ -80,6 +80,7 @@ Stephen Hemminger [email protected] > Takayuki HAMA [email protected] > Teemu Koponen [email protected] > Vishal Swarankar [email protected] > +YAMAMOTO Takashi [email protected] > Yongqiang Liu [email protected] > kk yap [email protected] > > diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c > index 4c4811b..7e9a965 100644 > --- a/lib/ofp-parse.c > +++ b/lib/ofp-parse.c > @@ -825,7 +825,8 @@ parse_ofp_str(struct flow_mod *fm, uint8_t *table_idx, > } else { > parse_field_value(&fm->cr, f->index, value); > } > - } else if (!strncmp(name, "reg", 3) && isdigit(name[3])) { > + } else if (!strncmp(name, "reg", 3) > + && isdigit((unsigned char) name[3])) { > unsigned int reg_idx = atoi(name + 3); > if (reg_idx >= FLOW_N_REGS) { > ovs_fatal(0, "only %d registers supported", FLOW_N_REGS); > diff --git a/lib/ofp-print.c b/lib/ofp-print.c > index f5eb9ad..6560f32 100644 > --- a/lib/ofp-print.c > +++ b/lib/ofp-print.c > @@ -614,7 +614,7 @@ ofp_print_phy_port(struct ds *string, const struct > ofp_phy_port *port) > > memcpy(name, port->name, sizeof name); > for (j = 0; j < sizeof name - 1; j++) { > - if (!isprint(name[j])) { > + if (!isprint((unsigned char) name[j])) { > break; > } > } > -- > 1.7.1 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
