When nlmsg_put fails, the lack of error-handling code may
cause unexpected results.

This patch adds error-handling code after calling nlmsg_put.

Signed-off-by: Zhouyang Jia <jiazhouyan...@gmail.com>
---
v1->v2:
- Add some cleanup
---
 drivers/staging/gdm724x/netlink_k.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/staging/gdm724x/netlink_k.c 
b/drivers/staging/gdm724x/netlink_k.c
index abe2425..16da03b 100644
--- a/drivers/staging/gdm724x/netlink_k.c
+++ b/drivers/staging/gdm724x/netlink_k.c
@@ -119,6 +119,11 @@ int netlink_send(struct sock *sock, int group, u16 type, 
void *msg, int len)
        seq++;
 
        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).portid = 0;
        NETLINK_CB(skb).dst_group = 0;
-- 
2.7.4

Reply via email to