Acked-by: Ethan Jackson &lt;<a href="mailto:ethan@nicira.com">ethan@nicira.com</a>&gt;<br><br><br><div class="gmail_quote">On Wed, Dec 26, 2012 at 12:38 PM, Ben Pfaff <span dir="ltr">&lt;<a href="mailto:blp@nicira.com" target="_blank">blp@nicira.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Signed-off-by: Ben Pfaff &lt;<a href="mailto:blp@nicira.com">blp@nicira.com</a>&gt;<br>
---<br>
 tests/test-classifier.c |   19 +++++++++++++++++--<br>
 1 files changed, 17 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/tests/test-classifier.c b/tests/test-classifier.c<br>
index 79ca29c..b1461ff 100644<br>
--- a/tests/test-classifier.c<br>
+++ b/tests/test-classifier.c<br>
@@ -95,6 +95,15 @@ test_rule_from_cls_rule(const struct cls_rule *rule)<br>
     return rule ? CONTAINER_OF(rule, struct test_rule, cls_rule) : NULL;<br>
 }<br>
<br>
+static void<br>
+test_rule_destroy(struct test_rule *rule)<br>
+{<br>
+    if (rule) {<br>
+        cls_rule_destroy(&amp;rule-&gt;cls_rule);<br>
+        free(rule);<br>
+    }<br>
+}<br>
+<br>
 static struct test_rule *make_rule(int wc_fields, unsigned int priority,<br>
                                    int value_pat);<br>
 static void free_rule(struct test_rule *);<br>
@@ -122,7 +131,7 @@ tcls_destroy(struct tcls *tcls)<br>
         size_t i;<br>
<br>
         for (i = 0; i &lt; tcls-&gt;n_rules; i++) {<br>
-            free(tcls-&gt;rules[i]);<br>
+            test_rule_destroy(tcls-&gt;rules[i]);<br>
         }<br>
         free(tcls-&gt;rules);<br>
     }<br>
@@ -172,9 +181,11 @@ tcls_remove(struct tcls *cls, const struct test_rule *rule)<br>
     for (i = 0; i &lt; cls-&gt;n_rules; i++) {<br>
         struct test_rule *pos = cls-&gt;rules[i];<br>
         if (pos == rule) {<br>
-            free(pos);<br>
+            test_rule_destroy(pos);<br>
+<br>
             memmove(&amp;cls-&gt;rules[i], &amp;cls-&gt;rules[i + 1],<br>
                     sizeof *cls-&gt;rules * (cls-&gt;n_rules - i - 1));<br>
+<br>
             cls-&gt;n_rules--;<br>
             return;<br>
         }<br>
@@ -1221,6 +1232,8 @@ test_minimask_has_extra(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)<br>
<br>
         minimask_destroy(&amp;minimask);<br>
     }<br>
+<br>
+    minimask_destroy(&amp;minicatchall);<br>
 }<br>
<br>
 static void<br>
@@ -1260,6 +1273,8 @@ test_minimask_combine(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)<br>
         minimask_destroy(&amp;minimask);<br>
         minimask_destroy(&amp;minimask2);<br>
     }<br>
+<br>
+    minimask_destroy(&amp;minicatchall);<br>
 }<br>
<br>
 static const struct command commands[] = {<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.2.5<br>
<br>
_______________________________________________<br>
dev mailing list<br>
<a href="mailto:dev@openvswitch.org">dev@openvswitch.org</a><br>
<a href="http://openvswitch.org/mailman/listinfo/dev" target="_blank">http://openvswitch.org/mailman/listinfo/dev</a><br>
</font></span></blockquote></div><br>