[ovs-dev] [PATCH 1/4] ofproto-dpif-xlate: Fix bad memory free.

William Tu u9012063 at gmail.com
Mon Oct 30 17:27:52 UTC 2017


Clang reports possibly bad free of 'ofm' when it comes from the stack
instead of malloc because Clang is not able to verify whether the previous
if condition 'ctx->xin->xcache' still hold the same.  Fix it by
adding additional condition.

Signed-off-by: William Tu <u9012063 at gmail.com>
---
 ofproto/ofproto-dpif-xlate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index ddcaf059ded2..b8a4986061a9 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -5128,7 +5128,7 @@ xlate_learn_action(struct xlate_ctx *ctx, const struct ofpact_learn *learn)
             }
         }
 
-        if (ctx->xin->xcache) {
+        if (ctx->xin->xcache && ofm != &ofm__) {
             free(ofm);
         }
 
-- 
2.7.4



More information about the dev mailing list