Seems reasonable. --Justin
On Jul 19, 2012, at 12:24 AM, Ben Pfaff wrote: > I don't think this corner case can come up in a real OpenFlow message, > because the presence of the OpenFlow header guarantees that the ofpbuf's > data is nonnull, but it did in a simple test that is coming up in a few > commits. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > lib/nx-match.c | 12 ++++++++---- > 1 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/lib/nx-match.c b/lib/nx-match.c > index 3e3b4c6..8b2a822 100644 > --- a/lib/nx-match.c > +++ b/lib/nx-match.c > @@ -99,6 +99,14 @@ nx_pull_match__(struct ofpbuf *b, unsigned int match_len, > bool strict, > > assert((cookie != NULL) == (cookie_mask != NULL)); > > + cls_rule_init_catchall(rule, priority); > + if (cookie) { > + *cookie = *cookie_mask = htonll(0); > + } > + if (!match_len) { > + return 0; > + } > + > p = ofpbuf_try_pull(b, ROUND_UP(match_len, 8)); > if (!p) { > VLOG_DBG_RL(&rl, "nx_match length %u, rounded up to a " > @@ -107,10 +115,6 @@ nx_pull_match__(struct ofpbuf *b, unsigned int > match_len, bool strict, > return OFPERR_OFPBMC_BAD_LEN; > } > > - cls_rule_init_catchall(rule, priority); > - if (cookie) { > - *cookie = *cookie_mask = htonll(0); > - } > for (; > (header = nx_entry_ok(p, match_len)) != 0; > p += 4 + NXM_LENGTH(header), match_len -= 4 + NXM_LENGTH(header)) { > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev