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

William Tu u9012063 at gmail.com
Sat Dec 19 08:07:02 UTC 2015


Hi Ben,

Thank you for the feedback.
About the wrong free in tun-metadata.c, which one do you mean?

--- a/lib/tun-metadata.c
+++ b/lib/tun-metadata.c
@@ -131,7 +131,7 @@ table_free(struct tun_table *map)
OVS_REQUIRES(tab_mutex)
     HMAP_FOR_EACH (entry, node, &map->key_hmap) {
         tun_metadata_del_entry(map, entry - map->entries);
     }
-
+       hmap_destroy(&map->key_hmap);
     free(map);

Or this one?

--- a/lib/tun-metadata.c
+++ b/lib/tun-metadata.c
@@ -596,6 +596,7 @@  tun_metadata_add_entry(struct tun_table *map, uint8_t
idx, uint16_t opt_class,

         err = tun_metadata_alloc_chain(map, len, cur_chain);
         if (err) {
+            free(cur_chain);
             tun_metadata_del_entry(map, idx);
             return OFPERR_NXGTMFC_TABLE_FULL;
         }


William

On Fri, Dec 18, 2015 at 10:00 PM, Ben Pfaff <blp at ovn.org> wrote:

> On Thu, Dec 17, 2015 at 10:39:42AM -0500, Jesse Gross wrote:
> > On Thu, Dec 17, 2015 at 4:55 AM, Ben Pfaff <blp at ovn.org> wrote:
> > > 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>
> >
> > Acked-by: Jesse Gross <jesse at kernel.org>
>
> Thanks, I applied this to master and branch-2.5.
>



More information about the dev mailing list