[ovs-dev] [PATCH] tun-metadata: Fix memory leak in tun_metadata_add_entry() corner case.

Ben Pfaff blp at ovn.org
Thu Dec 17 09:55:31 UTC 2015


Found by valgrind.

CC: Jesse Gross <jgross at vmware.com>
Reported-by: William Tu <u9012063 at gmail.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
 lib/tun-metadata.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/lib/tun-metadata.c b/lib/tun-metadata.c
index 314ef51..648a120 100644
--- a/lib/tun-metadata.c
+++ b/lib/tun-metadata.c
@@ -592,6 +592,7 @@ tun_metadata_add_entry(struct tun_table *map, uint8_t idx, uint16_t opt_class,
 
         if (!cur_chain) {
             cur_chain = xzalloc(sizeof *cur_chain);
+            prev_chain->next = cur_chain;
         }
 
         err = tun_metadata_alloc_chain(map, len, cur_chain);
@@ -602,9 +603,6 @@ tun_metadata_add_entry(struct tun_table *map, uint8_t idx, uint16_t opt_class,
 
         len -= cur_chain->len;
 
-        if (prev_chain) {
-            prev_chain->next = cur_chain;
-        }
         prev_chain = cur_chain;
         cur_chain = NULL;
     }
-- 
2.1.3




More information about the dev mailing list