ieee802154: Fix memory leak in ieee802154_add_iface()
authorChristian Engelmayer <cengelma@gmx.at>
Sat, 11 Jan 2014 21:19:30 +0000 (22:19 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Feb 2014 19:08:16 +0000 (11:08 -0800)
[ Upstream commit 267d29a69c6af39445f36102a832b25ed483f299 ]

Fix a memory leak in the ieee802154_add_iface() error handling path.
Detected by Coverity: CID 710490.

Signed-off-by: Christian Engelmayer <cengelma@gmx.at>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ieee802154/nl-phy.c

index 22b1a7058fd3f841d94ee27655840c1ae325f011..4efd2375d7e1be7fc2a53aa27f74c91a6d643251 100644 (file)
@@ -224,8 +224,10 @@ static int ieee802154_add_iface(struct sk_buff *skb,
 
        if (info->attrs[IEEE802154_ATTR_DEV_TYPE]) {
                type = nla_get_u8(info->attrs[IEEE802154_ATTR_DEV_TYPE]);
-               if (type >= __IEEE802154_DEV_MAX)
-                       return -EINVAL;
+               if (type >= __IEEE802154_DEV_MAX) {
+                       rc = -EINVAL;
+                       goto nla_put_failure;
+               }
        }
 
        dev = phy->add_iface(phy, devname, type);