ddlog_delta_get_table() returns data that must be freed, but the code
in northd_update_probe_interval() did not do that.  This fixes it.

In addition, the accumulated deltas weren't freed when the daemon exits.
This doesn't really matter but it's cleaner to do so, so this commit
also does that.

Signed-off-by: Ben Pfaff <[email protected]>
Reported-by: Numan Siddique <[email protected]>
---
 northd/ovn-northd-ddlog.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/northd/ovn-northd-ddlog.c b/northd/ovn-northd-ddlog.c
index 238987410239..be3de5cee29e 100644
--- a/northd/ovn-northd-ddlog.c
+++ b/northd/ovn-northd-ddlog.c
@@ -577,6 +577,7 @@ northd_update_probe_interval(struct northd_ctx *nb, struct 
northd_ctx *sb)
     table_id tid = ddlog_get_table_id("Northd_Probe_Interval");
     ddlog_delta *probe_delta = ddlog_delta_get_table(delta, tid);
     ddlog_delta_enumerate(probe_delta, northd_update_probe_interval_cb, 
(uintptr_t) &probe_interval);
+    ddlog_free_delta(probe_delta);
 
     ovsdb_cs_set_probe_interval(nb->cs, probe_interval);
     ovsdb_cs_set_probe_interval(sb->cs, probe_interval);
@@ -1230,6 +1231,7 @@ main(int argc, char *argv[])
     northd_ctx_destroy(nb_ctx);
     northd_ctx_destroy(sb_ctx);
 
+    ddlog_free_delta(delta);
     ddlog_stop(ddlog);
 
     if (replay_fd >= 0) {
-- 
2.29.2

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to