In testcase "ofproto-dpif - fragment handling - actions", valgrind reports
memeory leaks with the following call stack.
    xmalloc (util.c:112)
    xvasprintf (util.c:176)
    xasprintf (util.c:272)
    mf_parse_subfield__ (nx-match.c:1939)
    mf_parse_subfield (nx-match.c:1991)
    learn_parse_spec (learn.c:242)
    learn_parse__ (learn.c:436)
    learn_parse (learn.c:464)
    parse_LEARN (ofp-actions.c:4670)
    ofpact_parse (ofp-actions.c:8231)
    ofpacts_parse__ (ofp-actions.c:8278)
    ofpacts_parse (ofp-actions.c:8350)
    ofpacts_parse_copy (ofp-actions.c:8368)
    parse_ofp_str__ (ofp-parse.c:543)
    parse_ofp_str (ofp-parse.c:596)
    parse_ofp_flow_mod_str (ofp-parse.c:1024)
    ofctl_flow_mod (ovs-ofctl.c:1496)
    ovs_cmdl_run_command__ (command-line.c:115)
    main (ovs-ofctl.c:147)

Signed-off-by: Yi-Hung Wei <[email protected]>
---
 lib/learn.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/learn.c b/lib/learn.c
index b7b70ac3d4e2..1c88b8fa402a 100644
--- a/lib/learn.c
+++ b/lib/learn.c
@@ -322,6 +322,7 @@ learn_parse_spec(const char *orig, char *name, char *value,
         char *tail;
         char *dst_value = strstr(value, "->");
 
+        free(error);
         if (dst_value == value) {
             return xasprintf("%s: missing source before `->' in `%s'", name,
                              value);
@@ -358,6 +359,8 @@ learn_parse_spec(const char *orig, char *name, char *value,
             spec->dst = move.dst;
         }
     } else if (!strcmp(name, "output")) {
+        free(error);
+
         char *error = mf_parse_subfield(&spec->src, value);
         if (error) {
             return error;
@@ -367,6 +370,7 @@ learn_parse_spec(const char *orig, char *name, char *value,
         spec->src_type = NX_LEARN_SRC_FIELD;
         spec->dst_type = NX_LEARN_DST_OUTPUT;
     } else {
+        free(error);
         return xasprintf("%s: unknown keyword %s", orig, name);
     }
 
-- 
2.7.4

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to