[ovs-dev] [leaks 6/7] classifier: Fix theoretical leak in classifier_destroy().

Ben Pfaff blp at nicira.com
Wed Dec 26 20:38:47 UTC 2012


The open-coded version of destroy_table() in classifier_destroy() didn't
free the table's minimatch.  Use destroy_table() to do it properly.

This is only a theoretical leak because all the existing callers actually
remove all the rules from their classifiers before they destroy them
(outside of the tests/ directory, which I didn't examine) and so they don't
ever have anything left to remove in classifier_destroy().

Signed-off-by: Ben Pfaff <blp at nicira.com>
---
 lib/classifier.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/lib/classifier.c b/lib/classifier.c
index e5d226e..d1fe524 100644
--- a/lib/classifier.c
+++ b/lib/classifier.c
@@ -146,9 +146,7 @@ classifier_destroy(struct classifier *cls)
         struct cls_table *table, *next_table;
 
         HMAP_FOR_EACH_SAFE (table, next_table, hmap_node, &cls->tables) {
-            hmap_destroy(&table->rules);
-            hmap_remove(&cls->tables, &table->hmap_node);
-            free(table);
+            destroy_table(cls, table);
         }
         hmap_destroy(&cls->tables);
     }
-- 
1.7.2.5




More information about the dev mailing list