staging: gdm72xx: fix an skb memory leak
[cascardo/linux.git] / drivers / staging / gdm72xx / netlink_k.c
index 9fa432d..064815b 100644 (file)
@@ -126,8 +126,13 @@ int netlink_send(struct sock *sock, int group, u16 type, void *msg, int len)
        }
 
        seq++;
-       nlh = NLMSG_PUT(skb, 0, seq, type, len);
-       memcpy(NLMSG_DATA(nlh), msg, len);
+       nlh = nlmsg_put(skb, 0, seq, type, len, 0);
+       if (!nlh) {
+               kfree_skb(skb);
+               return -EMSGSIZE;
+       }
+
+       memcpy(nlmsg_data(nlh), msg, len);
 
        NETLINK_CB(skb).pid = 0;
        NETLINK_CB(skb).dst_group = 0;
@@ -144,6 +149,5 @@ int netlink_send(struct sock *sock, int group, u16 type, void *msg, int len)
                ret = 0;
        }
 
-nlmsg_failure:
        return ret;
 }