diff options
author | Haishuang Yan <yanhaishuang@cmss.chinamobile.com> | 2017-06-05 08:57:21 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-05 11:24:28 -0400 |
commit | 6044bd4a7d580d4459b992bc6631c817486a1514 (patch) | |
tree | a720b0ac5954bbf1d3bfbb90225c34d35518b41a /net | |
parent | 1e0ce2a1ee0d5fb334e82e80600f1e8e77df525c (diff) | |
download | linux-6044bd4a7d580d4459b992bc6631c817486a1514.tar.gz linux-6044bd4a7d580d4459b992bc6631c817486a1514.tar.bz2 linux-6044bd4a7d580d4459b992bc6631c817486a1514.zip |
devlink: fix potential memort leak
We must free allocated skb when genlmsg_put() return fails.
Fixes: 1555d204e743 ("devlink: Support for pipeline debug (dpipe)")
Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/devlink.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/core/devlink.c b/net/core/devlink.c index b0b87a292e7c..a0adfc31a3fe 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -1680,8 +1680,10 @@ start_again: hdr = genlmsg_put(skb, info->snd_portid, info->snd_seq, &devlink_nl_family, NLM_F_MULTI, cmd); - if (!hdr) + if (!hdr) { + nlmsg_free(skb); return -EMSGSIZE; + } if (devlink_nl_put_handle(skb, devlink)) goto nla_put_failure; @@ -2098,8 +2100,10 @@ start_again: hdr = genlmsg_put(skb, info->snd_portid, info->snd_seq, &devlink_nl_family, NLM_F_MULTI, cmd); - if (!hdr) + if (!hdr) { + nlmsg_free(skb); return -EMSGSIZE; + } if (devlink_nl_put_handle(skb, devlink)) goto nla_put_failure; |