| From ae4451f9c9490ab41186fd6bf5bc4e1a2ac63f9d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 5 Jan 2019 10:52:23 -0600 |
| Subject: tipc: fix memory leak in tipc_nl_compat_publ_dump |
| |
| From: Gustavo A. R. Silva <gustavo@embeddedor.com> |
| |
| [ Upstream commit f87d8ad9233f115db92c6c087d58403b0009ed36 ] |
| |
| There is a memory leak in case genlmsg_put fails. |
| |
| Fix this by freeing *args* before return. |
| |
| Addresses-Coverity-ID: 1476406 ("Resource leak") |
| Fixes: 46273cf7e009 ("tipc: fix a missing check of genlmsg_put") |
| Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> |
| Acked-by: Ying Xue <ying.xue@windriver.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/tipc/netlink_compat.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c |
| index 454ed8ea194c8..e3fc959e496d4 100644 |
| --- a/net/tipc/netlink_compat.c |
| +++ b/net/tipc/netlink_compat.c |
| @@ -974,8 +974,10 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock) |
| |
| hdr = genlmsg_put(args, 0, 0, &tipc_genl_family, NLM_F_MULTI, |
| TIPC_NL_PUBL_GET); |
| - if (!hdr) |
| + if (!hdr) { |
| + kfree_skb(args); |
| return -EMSGSIZE; |
| + } |
| |
| nest = nla_nest_start(args, TIPC_NLA_SOCK); |
| if (!nest) { |
| -- |
| 2.20.1 |
| |