[NETLINK]: Clear padding in netlink messages

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Patrick McHardy and committed by David S. Miller b3563c4f 4095ebf1

+6 -1
+1
include/linux/netlink.h
··· 168 168 nlh->nlmsg_flags = flags; 169 169 nlh->nlmsg_pid = pid; 170 170 nlh->nlmsg_seq = seq; 171 + memset(NLMSG_DATA(nlh) + len, 0, NLMSG_ALIGN(size) - size); 171 172 return nlh; 172 173 } 173 174
+4 -1
include/linux/rtnetlink.h
··· 898 898 memcpy(skb_put(skb, attrlen), data, attrlen); }) 899 899 900 900 #define RTA_PUT_NOHDR(skb, attrlen, data) \ 901 - RTA_APPEND(skb, RTA_ALIGN(attrlen), data) 901 + ({ RTA_APPEND(skb, RTA_ALIGN(attrlen), data); \ 902 + memset(skb->tail - (RTA_ALIGN(attrlen) - attrlen), 0, \ 903 + RTA_ALIGN(attrlen) - attrlen); }) 902 904 903 905 #define RTA_PUT_U8(skb, attrtype, value) \ 904 906 ({ u8 _tmp = (value); \ ··· 980 978 rta = (struct rtattr*)skb_put(skb, RTA_ALIGN(size)); 981 979 rta->rta_type = attrtype; 982 980 rta->rta_len = size; 981 + memset(RTA_DATA(rta) + attrlen, 0, RTA_ALIGN(size) - size); 983 982 return rta; 984 983 } 985 984
+1
net/core/rtnetlink.c
··· 126 126 rta->rta_type = attrtype; 127 127 rta->rta_len = size; 128 128 memcpy(RTA_DATA(rta), data, attrlen); 129 + memset(RTA_DATA(rta) + attrlen, 0, RTA_ALIGN(size) - size); 129 130 } 130 131 131 132 size_t rtattr_strlcpy(char *dest, const struct rtattr *rta, size_t size)