From 0006b3389d43d5f3d55b895a9f856106cd28085e Mon Sep 17 00:00:00 2001
From: Ilya Maximets <i.maximets@ovn.org>
Date: Fri, 20 Nov 2020 01:17:19 +0100
Subject: [PATCH 11/16] northd: Fix leak of dynamic string for fwd group ports.
'group_ports' never destroyed and re-created on each iteration.
CC: Manoj Sharma <manoj.sharma@nutanix.com>
Fixes: edb240081518 ("Forwarding group to load balance l2 traffic with liveness detection")
Acked-by: Dumitru Ceara <dceara@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Signed-off-by: Numan Siddique <numans@ovn.org>
(cherry-picked from master commit 44f41669812c633bc180074e6d91e0d0f3a781a1)
---
northd/ovn-northd.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
index 0acff2322..23ad7ba7f 100644
--- a/northd/ovn-northd.c
+++ b/northd/ovn-northd.c
@@ -5960,6 +5960,7 @@ build_fwd_group_lflows(struct ovn_datapath *od, struct hmap *lflows)
{
struct ds match = DS_EMPTY_INITIALIZER;
struct ds actions = DS_EMPTY_INITIALIZER;
+ struct ds group_ports = DS_EMPTY_INITIALIZER;
for (int i = 0; i < od->nbs->n_forwarding_groups; ++i) {
const struct nbrec_forwarding_group *fwd_group = NULL;
@@ -5993,7 +5994,7 @@ build_fwd_group_lflows(struct ovn_datapath *od, struct hmap *lflows)
ds_put_format(&match, "eth.dst == %s", fwd_group->vmac);
/* Create a comma separated string of child ports */
- struct ds group_ports = DS_EMPTY_INITIALIZER;
+ ds_clear(&group_ports);
if (fwd_group->liveness) {
ds_put_cstr(&group_ports, "liveness=\"true\",");
}
@@ -6013,6 +6014,7 @@ build_fwd_group_lflows(struct ovn_datapath *od, struct hmap *lflows)
ds_destroy(&match);
ds_destroy(&actions);
+ ds_destroy(&group_ports);
}
static void
--
2.28.0