On Tue, Oct 31, 2017 at 10:52:09AM -0700, Yifeng Sun wrote:
> Valgrind testcase 1465 (integer atom enum from string) reports the leak below:
> 16 bytes in 1 blocks are definitely lost in loss record 2 of 5
>     at 0x4C2DB8F: malloc (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
>     by 0x43F5F4: xmalloc (util.c:120)
>     by 0x424AC6: alloc_default_atoms (ovsdb-data.c:315)
>     by 0x4271E0: ovsdb_atom_from_string__ (ovsdb-data.c:508)
>     by 0x4271E0: ovsdb_atom_from_string (ovsdb-data.c:632)
>     by 0x40ADCC: do_parse_atom_strings (test-ovsdb.c:566)
>     by 0x41BA73: ovs_cmdl_run_command__ (command-line.c:115)
>     by 0x4051C9: main (test-ovsdb.c:72)
> 
> range_end_atom is allocated in ovsdb_atom_from_string__() and no one is 
> holding a reference to it at the end of do_parse_atom_strings(). It should be 
> freed here, as also pointed out by ovsdb_atom_destroy().
> 
> v1->v2: Amend comments.
> v2->v3: Fix error in patch.
> 
> Signed-off-by: Yifeng Sun <pkusunyif...@gmail.com>
> ---
>  tests/test-ovsdb.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c
> index 451172cdcc34..b5147fc055e3 100644
> --- a/tests/test-ovsdb.c
> +++ b/tests/test-ovsdb.c
> @@ -582,6 +582,7 @@ do_parse_atom_strings(struct ovs_cmdl_context *ctx)
>          ovsdb_atom_destroy(&atom, base.type);
>          if (range_end_atom) {
>              ovsdb_atom_destroy(range_end_atom, base.type);
> +         free(range_end_atom);
>          }
>      }

Thanks!  I'll apply this to master in a minute.

The patch adds a tab for indentation.  We only use spaces, so I fixed
that.

Thanks,

Ben.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to