]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
mptcp: Fix memory leak when doing 'endpoint show'
authorBenjamin Poirier <bpoirier@nvidia.com>
Sun, 10 Jul 2022 23:52:52 +0000 (08:52 +0900)
committerStephen Hemminger <stephen@networkplumber.org>
Mon, 18 Jul 2022 16:46:24 +0000 (09:46 -0700)
With the following command sequence:

ip mptcp endpoint add 127.0.0.1 id 1
ip mptcp endpoint show id 1

when running the last command under valgrind, it reports

32,768 bytes in 1 blocks are definitely lost in loss record 2 of 2
   at 0x483F7B5: malloc (vg_replace_malloc.c:381)
   by 0x17A0AC: rtnl_recvmsg (libnetlink.c:838)
   by 0x17A391: __rtnl_talk_iov.constprop.0 (libnetlink.c:1040)
   by 0x17B854: __rtnl_talk (libnetlink.c:1141)
   by 0x17B854: rtnl_talk (libnetlink.c:1147)
   by 0x168A56: mptcp_addr_show (ipmptcp.c:334)
   by 0x1174CB: do_cmd (ip.c:136)
   by 0x116F7C: main (ip.c:324)

Free the answer obtained from rtnl_talk().

Fixes: 7e0767cd862b ("add support for mptcp netlink interface")
Suggested-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Benjamin Poirier <bpoirier@nvidia.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
ip/ipmptcp.c

index 0033f329bdefc209679c370ab0c82d349be4d65f..54817e4675ba43a48dbfa71fc3ad4ea68dbb3072 100644 (file)
@@ -337,6 +337,7 @@ static int mptcp_addr_show(int argc, char **argv)
        new_json_obj(json);
        ret = print_mptcp_addr(answer, stdout);
        delete_json_obj();
+       free(answer);
        fflush(stdout);
        return ret;
 }