diff mbox series

[ovs-dev] northd: Fix leaks of strings while formatting ecmp flows.

Message ID 20201119194006.1847392-1-i.maximets@ovn.org
State Superseded
Headers show
Series [ovs-dev] northd: Fix leaks of strings while formatting ecmp flows. | expand

Commit Message

Ilya Maximets Nov. 19, 2020, 7:40 p.m. UTC
Result of 'normalize_v46_prefix()' should be freed and all dynamic
strings should be destroyed.

  Direct leak of 156 byte(s) in 13 object(s) allocated from:
    #0 0x53700f in malloc (northd/ovn-northd+0x53700f)
    #1 0x71b146 in xmalloc ovs/lib/util.c:138:15
    #2 0x71b39a in xvasprintf ovs/lib/util.c:202:9
    #3 0x71b753 in xasprintf ovs/lib/util.c:343:9
    #4 0x59bddc in add_ecmp_symmetric_reply_flows northd/ovn-northd.c:7985:18
    #5 0x59aab5 in build_ecmp_route_flow northd/ovn-northd.c:8102:13
    #6 0x592260 in build_static_route_flows_for_lrouter ovn-northd.c:10243:13
    #7 0x589267 in build_lswitch_and_lrouter_iterate_by_od ovn-northd.c:11241:5
    #8 0x5888ca in build_lswitch_and_lrouter_flows northd/ovn-northd.c:11313:9
    #9 0x5730a0 in build_lflows northd/ovn-northd.c:11401:5
    #10 0x56f992 in ovnnb_db_run northd/ovn-northd.c:12339:5
    #11 0x56e8a7 in ovn_db_run northd/ovn-northd.c:12932:5
    #12 0x56d6af in main northd/ovn-northd.c:13338:17
    #13 0x7f5371d041a2 in __libc_start_main (/lib64/libc.so.6+0x271a2)

Fixes: 4fdca656857d ("Add ECMP symmetric replies.")
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
---
 northd/ovn-northd.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Ilya Maximets Nov. 20, 2020, 12:22 a.m. UTC | #1
On 11/19/20 8:40 PM, Ilya Maximets wrote:
> Result of 'normalize_v46_prefix()' should be freed and all dynamic
> strings should be destroyed.
> 
>   Direct leak of 156 byte(s) in 13 object(s) allocated from:
>     #0 0x53700f in malloc (northd/ovn-northd+0x53700f)
>     #1 0x71b146 in xmalloc ovs/lib/util.c:138:15
>     #2 0x71b39a in xvasprintf ovs/lib/util.c:202:9
>     #3 0x71b753 in xasprintf ovs/lib/util.c:343:9
>     #4 0x59bddc in add_ecmp_symmetric_reply_flows northd/ovn-northd.c:7985:18
>     #5 0x59aab5 in build_ecmp_route_flow northd/ovn-northd.c:8102:13
>     #6 0x592260 in build_static_route_flows_for_lrouter ovn-northd.c:10243:13
>     #7 0x589267 in build_lswitch_and_lrouter_iterate_by_od ovn-northd.c:11241:5
>     #8 0x5888ca in build_lswitch_and_lrouter_flows northd/ovn-northd.c:11313:9
>     #9 0x5730a0 in build_lflows northd/ovn-northd.c:11401:5
>     #10 0x56f992 in ovnnb_db_run northd/ovn-northd.c:12339:5
>     #11 0x56e8a7 in ovn_db_run northd/ovn-northd.c:12932:5
>     #12 0x56d6af in main northd/ovn-northd.c:13338:17
>     #13 0x7f5371d041a2 in __libc_start_main (/lib64/libc.so.6+0x271a2)
> 
> Fixes: 4fdca656857d ("Add ECMP symmetric replies.")
> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
> ---

Please, ignore this one.  Re-sent as part of a patch-set:
https://patchwork.ozlabs.org/project/ovn/list/?series=215674

Best regards, Ilya Maximets.
diff mbox series

Patch

diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
index 148d2a051..1d41aacc6 100644
--- a/northd/ovn-northd.c
+++ b/northd/ovn-northd.c
@@ -7971,6 +7971,7 @@  add_ecmp_symmetric_reply_flows(struct hmap *lflows,
                   IN6_IS_ADDR_V4MAPPED(&route->prefix) ? "4" : "6",
                   route->is_src_route ? "dst" : "src",
                   cidr);
+    free(cidr);
     ovn_lflow_add_with_hint(lflows, od, S_ROUTER_IN_DEFRAG, 100,
                             ds_cstr(&match), "ct_next;",
                             &st_route->header_);
@@ -8022,6 +8023,10 @@  add_ecmp_symmetric_reply_flows(struct hmap *lflows,
     ovn_lflow_add_with_hint(lflows, od, S_ROUTER_IN_ARP_RESOLVE,
                             200, ds_cstr(&ecmp_reply),
                             action, &st_route->header_);
+
+    ds_destroy(&match);
+    ds_destroy(&actions);
+    ds_destroy(&ecmp_reply);
 }
 
 static void