Valgrind testcase 1804 ovsdb-server.at:1023 insert rows, update rows by value reports the following leak. json_from_string (json.c:1025) execute_update (replication.c:614), similarily at execute_delete() process_table_update (replication.c:502) process_notification.part.5 (replication.c:445) process_notification (replication.c:402) check_for_notifications (replication.c:418) replication_run (replication.c:110)
Signed-off-by: William Tu <u9012...@gmail.com> --- v1->v2 * remove 'const' at struct json --- ovsdb/replication.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ovsdb/replication.c b/ovsdb/replication.c index 463fa0a..e271425 100644 --- a/ovsdb/replication.c +++ b/ovsdb/replication.c @@ -547,7 +547,7 @@ static struct ovsdb_error * execute_delete(struct ovsdb_txn *txn, const char *uuid, struct ovsdb_table *table) { - const struct json *where; + struct json *where; struct ovsdb_error *error; struct ovsdb_condition condition = OVSDB_CONDITION_INITIALIZER(&condition); char where_string[UUID_LEN+29]; @@ -571,6 +571,8 @@ execute_delete(struct ovsdb_txn *txn, const char *uuid, } ovsdb_condition_destroy(&condition); + json_destroy(where); + return error; } @@ -604,7 +606,7 @@ execute_update(struct ovsdb_txn *txn, const char *uuid, struct update_row_cbdata ur; struct ovsdb_row *row; struct ovsdb_error *error; - const struct json *where; + struct json *where; char where_string[UUID_LEN+29]; snprintf(where_string, sizeof where_string, "%s%s%s", @@ -628,6 +630,7 @@ execute_update(struct ovsdb_txn *txn, const char *uuid, ovsdb_row_destroy(row); ovsdb_column_set_destroy(&columns); ovsdb_condition_destroy(&condition); + json_destroy(where); return error; } -- 2.5.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev