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