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

Reply via email to