Skip to content

Commit

Permalink
test-ovsdb: Fix memory leak
Browse files Browse the repository at this point in the history
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().

Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
  • Loading branch information
yifsun authored and blp committed Nov 2, 2017
1 parent 4ef7f55 commit 93236ad
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions tests/test-ovsdb.c
Expand Up @@ -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);
}
}
ovsdb_base_type_destroy(&base);
Expand Down

0 comments on commit 93236ad

Please sign in to comment.