diff options
-rw-r--r-- | ofproto/ofproto-dpif.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 20a180e29..0fdd1fb44 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -3898,10 +3898,12 @@ handle_flow_miss(struct flow_miss *miss, struct flow_miss_op *ops, if (miss->key_fitness == ODP_FIT_TOO_LITTLE || !flow_miss_should_make_facet(miss, &xout.wc)) { handle_flow_miss_without_facet(rule, &xout, miss, ops, n_ops); + xlate_out_uninit(&xout); return; } facet = facet_create(miss, rule, &xout, stats); + xlate_out_uninit(&xout); stats = NULL; } handle_flow_miss_with_facet(miss, facet, now, stats, ops, n_ops); @@ -7114,7 +7116,10 @@ xlate_out_uninit(struct xlate_out *xout) } /* Translates the 'ofpacts_len' bytes of "struct ofpacts" starting at 'ofpacts' - * into datapath actions in 'odp_actions', using 'ctx'. */ + * into datapath actions in 'odp_actions', using 'ctx'. + * + * The caller must take responsibility for eventually freeing 'xout', with + * xlate_out_uninit(). */ static void xlate_actions(struct xlate_in *xin, struct xlate_out *xout) { |