Re: [ovs-dev] [PATCH 09/10] db-ctl-base: Free leaked ovsdb_datum

2019-09-17 Thread William Tu
On Wed, Sep 11, 2019 at 02:18:35PM -0700, Yifeng Sun wrote:
> Valgrind reported:
> 
> 2491: database commands -- negative checks
> 
> ==19245== 36 (32 direct, 4 indirect) bytes in 1 blocks are definitely lost in 
> loss record 36 of 53
> ==19245==at 0x4C2FD5F: realloc (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==19245==by 0x431AB4: xrealloc (util.c:149)
> ==19245==by 0x41656D: ovsdb_datum_reallocate (ovsdb-data.c:1883)
> ==19245==by 0x41656D: ovsdb_datum_union (ovsdb-data.c:1961)
> ==19245==by 0x4107B2: cmd_add (db-ctl-base.c:1494)
> ==19245==by 0x406E2E: do_vsctl (ovs-vsctl.c:2626)
> ==19245==by 0x406E2E: main (ovs-vsctl.c:183)
> 
> ==19252== 16 bytes in 1 blocks are definitely lost in loss record 9 of 52
> ==19252==at 0x4C2DB8F: malloc (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==19252==by 0x430F74: xmalloc (util.c:138)
> ==19252==by 0x414D07: clone_atoms (ovsdb-data.c:990)
> ==19252==by 0x4153F6: ovsdb_datum_clone (ovsdb-data.c:1012)
> ==19252==by 0x4104D3: cmd_remove (db-ctl-base.c:1564)
> ==19252==by 0x406E2E: do_vsctl (ovs-vsctl.c:2626)
> ==19252==by 0x406E2E: main (ovs-vsctl.c:183)
> 
> This patch fixes them.
> 
> Signed-off-by: Yifeng Sun 

LGTM.
Acked-by: William Tu 



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


[ovs-dev] [PATCH 09/10] db-ctl-base: Free leaked ovsdb_datum

2019-09-11 Thread Yifeng Sun
Valgrind reported:

2491: database commands -- negative checks

==19245== 36 (32 direct, 4 indirect) bytes in 1 blocks are definitely lost in 
loss record 36 of 53
==19245==at 0x4C2FD5F: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==19245==by 0x431AB4: xrealloc (util.c:149)
==19245==by 0x41656D: ovsdb_datum_reallocate (ovsdb-data.c:1883)
==19245==by 0x41656D: ovsdb_datum_union (ovsdb-data.c:1961)
==19245==by 0x4107B2: cmd_add (db-ctl-base.c:1494)
==19245==by 0x406E2E: do_vsctl (ovs-vsctl.c:2626)
==19245==by 0x406E2E: main (ovs-vsctl.c:183)

==19252== 16 bytes in 1 blocks are definitely lost in loss record 9 of 52
==19252==at 0x4C2DB8F: malloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==19252==by 0x430F74: xmalloc (util.c:138)
==19252==by 0x414D07: clone_atoms (ovsdb-data.c:990)
==19252==by 0x4153F6: ovsdb_datum_clone (ovsdb-data.c:1012)
==19252==by 0x4104D3: cmd_remove (db-ctl-base.c:1564)
==19252==by 0x406E2E: do_vsctl (ovs-vsctl.c:2626)
==19252==by 0x406E2E: main (ovs-vsctl.c:183)

This patch fixes them.

Signed-off-by: Yifeng Sun 
---
 lib/db-ctl-base.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c
index 3bd9f006acb1..6878d6326cae 100644
--- a/lib/db-ctl-base.c
+++ b/lib/db-ctl-base.c
@@ -1489,6 +1489,7 @@ cmd_add(struct ctl_context *ctx)
 ctx->error = ovsdb_datum_from_string(, _type, ctx->argv[i],
  ctx->symtab);
 if (ctx->error) {
+ovsdb_datum_destroy(, >type);
 return;
 }
 ovsdb_datum_union(, , type, false);
@@ -1500,6 +1501,7 @@ cmd_add(struct ctl_context *ctx)
   old.n,
   type->value.type == OVSDB_TYPE_VOID ? "values" : "pairs",
   column->name, table->name, type->n_max);
+ovsdb_datum_destroy(, >type);
 return;
 }
 ovsdb_idl_txn_verify(row, column);
@@ -1581,10 +1583,12 @@ cmd_remove(struct ctl_context *ctx)
  ctx->argv[i],
  ctx->symtab);
 if (ctx->error) {
+ovsdb_datum_destroy(, >type);
 return;
 }
 } else {
 ctx->error = error;
+ovsdb_datum_destroy(, >type);
 return;
 }
 }
@@ -1596,6 +1600,7 @@ cmd_remove(struct ctl_context *ctx)
   "table %s but the minimum number is %u", old.n,
   type->value.type == OVSDB_TYPE_VOID ? "values" : "pairs",
   column->name, table->name, type->n_min);
+ovsdb_datum_destroy(, >type);
 return;
 }
 ovsdb_idl_txn_verify(row, column);
-- 
2.7.4

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