summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2015-12-10 16:04:47 +0100
committerThomas Haller <thaller@redhat.com>2015-12-10 18:04:40 +0100
commit088604f62ea77fcc492eb6cb4df70dcdbc318751 (patch)
tree1bc7ef33af666616632d2aeba1ff2519b2dd47b8
parent5810502d19314924a64539f6fee5c3e4e97c8247 (diff)
downloadNetworkManager-088604f62ea77fcc492eb6cb4df70dcdbc318751.tar.gz
platform: fix memleak in _nl_link_parse_info_data()
Fixes: e9f364548a65fd4e26bf22367fe7c28fe127ab41
-rw-r--r--src/platform/nm-linux-platform.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
index de873b9984..ee6ba421d2 100644
--- a/src/platform/nm-linux-platform.c
+++ b/src/platform/nm-linux-platform.c
@@ -384,6 +384,7 @@ _nl_link_parse_info_data (struct nl_sock *sk, int ifindex,
NMNLInfoDataClosure data = { .parser = parser, .parser_data = parser_data };
struct nl_msg *msg = NULL;
struct nl_cb *cb;
+ struct nl_cb *cb0;
int err;
err = rtnl_link_build_get_request (ifindex, NULL, &msg);
@@ -395,7 +396,9 @@ _nl_link_parse_info_data (struct nl_sock *sk, int ifindex,
if (err < 0)
return err;
- cb = nl_cb_clone (nl_socket_get_cb (sk));
+ cb0 = nl_socket_get_cb (sk);
+ cb = nl_cb_clone (cb0);
+ nl_cb_put (cb0);
if (cb == NULL)
return -NLE_NOMEM;
nl_cb_set (cb, NL_CB_VALID, NL_CB_CUSTOM, _nl_link_parse_info_data_cb, &data);