[PATCH] taskstats: fix sk_buff size calculation

prepare_reply() adds GENL_HDRLEN to the payload (genlmsg_total_size()),
but then it does genlmsg_put()->nlmsg_put(). This means we forget to
reserve a room for 'struct nlmsghdr'.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Thomas Graf <tgraf@suug.ch>
Cc: Andrew Morton <akpm@osdl.org>
Cc: Shailabh Nagar <nagar@watson.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Jay Lan <jlan@sgi.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Oleg Nesterov and committed by Linus Torvalds 3d8334de d46a3d0d

+2 -1
+2 -1
kernel/taskstats.c
··· 77 77 /* 78 78 * If new attributes are added, please revisit this allocation 79 79 */ 80 - skb = nlmsg_new(genlmsg_total_size(size), GFP_KERNEL); 80 + size = nlmsg_total_size(genlmsg_total_size(size)); 81 + skb = nlmsg_new(size, GFP_KERNEL); 81 82 if (!skb) 82 83 return -ENOMEM; 83 84