From 6f04e94a264edae76aa2bb44a9019e19b29d47a1 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 28 Apr 2011 16:34:56 -0700 Subject: [PATCH] datapath: Avoid freeing wild pointer in corner case. In odp_flow_cmd_new_or_set(), if flow_actions_alloc() fails in the "new flow" case, then flow_put() will kfree() the new flow's 'sf_acts' pointer, but nothing has initialized that pointer. Initialize the pointer to NULL to avoid the problem. Found by inspection. Signed-off-by: Ben Pfaff Acked-by: Jesse Gross --- datapath/flow.c | 1 + 1 file changed, 1 insertion(+) diff --git a/datapath/flow.c b/datapath/flow.c index f264866a..d670925a 100644 --- a/datapath/flow.c +++ b/datapath/flow.c @@ -196,6 +196,7 @@ struct sw_flow *flow_alloc(void) spin_lock_init(&flow->lock); atomic_set(&flow->refcnt, 1); + flow->sf_acts = NULL; flow->dead = false; return flow; -- 2.30.2