The sflow action only uses 8 bytes of the total 16 for user_action_cookie,
but fix_sflow_action() was checking for the presence of all 8, so if the
sflow action wasn't followed by a few other actions then 'cookie' would
end up NULL and the assertion would segfault.

Bug #16659.
Reported-by: Dhaval Badiani <dbadi...@vmware.com>
Signed-off-by: Ben Pfaff <b...@nicira.com>
---
 AUTHORS                |    1 +
 ofproto/ofproto-dpif.c |    2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/AUTHORS b/AUTHORS
index 8656dee..b314ce6 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -123,6 +123,7 @@ Cedric Hobbs            ced...@nicira.com
 Dave Walker             davewal...@ubuntu.com
 David Palma             pa...@onesource.pt
 Derek Cormier           derek.corm...@lab.ntt.co.jp
+Dhaval Badiani          dbadi...@vmware.com
 Duffie Cooley           dcoo...@nicira.com
 DK Moon                 dkm...@nicira.com
 Edwin Chiu              ec...@nicira.com
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index 40e897f..6ec1c23 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -6073,7 +6073,7 @@ fix_sflow_action(struct action_xlate_ctx *ctx)
     }
 
     cookie = ofpbuf_at(ctx->odp_actions, ctx->user_cookie_offset,
-                       sizeof(*cookie));
+                       sizeof cookie->sflow);
     ovs_assert(cookie->type == USER_ACTION_COOKIE_SFLOW);
 
     compose_sflow_cookie(ctx->ofproto, base->vlan_tci,
-- 
1.7.10.4

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to