diff options
Diffstat (limited to 'net/core')
| -rw-r--r-- | net/core/neighbour.c | 6 | ||||
| -rw-r--r-- | net/core/rtnetlink.c | 2 | ||||
| -rw-r--r-- | net/core/wireless.c | 1 | 
3 files changed, 9 insertions, 0 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 851eb927ed97..1beb782ac41b 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -1598,6 +1598,8 @@ static int neightbl_fill_info(struct neigh_table *tbl, struct sk_buff *skb,  	read_lock_bh(&tbl->lock);  	ndtmsg->ndtm_family = tbl->family; +	ndtmsg->ndtm_pad1   = 0; +	ndtmsg->ndtm_pad2   = 0;  	RTA_PUT_STRING(skb, NDTA_NAME, tbl->id);  	RTA_PUT_MSECS(skb, NDTA_GC_INTERVAL, tbl->gc_interval); @@ -1683,6 +1685,8 @@ static int neightbl_fill_param_info(struct neigh_table *tbl,  	read_lock_bh(&tbl->lock);  	ndtmsg->ndtm_family = tbl->family; +	ndtmsg->ndtm_pad1   = 0; +	ndtmsg->ndtm_pad2   = 0;  	RTA_PUT_STRING(skb, NDTA_NAME, tbl->id);  	if (neightbl_fill_parms(skb, parms) < 0) @@ -1872,6 +1876,8 @@ static int neigh_fill_info(struct sk_buff *skb, struct neighbour *n,  	struct ndmsg *ndm = NLMSG_DATA(nlh);  	ndm->ndm_family	 = n->ops->family; +	ndm->ndm_pad1    = 0; +	ndm->ndm_pad2    = 0;  	ndm->ndm_flags	 = n->flags;  	ndm->ndm_type	 = n->type;  	ndm->ndm_ifindex = n->dev->ifindex; diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index e013d836a7ab..4b1bb30e6381 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -126,6 +126,7 @@ void __rta_fill(struct sk_buff *skb, int attrtype, int attrlen, const void *data  	rta->rta_type = attrtype;  	rta->rta_len = size;  	memcpy(RTA_DATA(rta), data, attrlen); +	memset(RTA_DATA(rta) + attrlen, 0, RTA_ALIGN(size) - size);  }  size_t rtattr_strlcpy(char *dest, const struct rtattr *rta, size_t size) @@ -188,6 +189,7 @@ static int rtnetlink_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,  	nlh = NLMSG_NEW(skb, pid, seq, type, sizeof(*r), flags);  	r = NLMSG_DATA(nlh);  	r->ifi_family = AF_UNSPEC; +	r->__ifi_pad = 0;  	r->ifi_type = dev->type;  	r->ifi_index = dev->ifindex;  	r->ifi_flags = dev_get_flags(dev); diff --git a/net/core/wireless.c b/net/core/wireless.c index b2fe378dfbf8..3ff5639c0b78 100644 --- a/net/core/wireless.c +++ b/net/core/wireless.c @@ -1102,6 +1102,7 @@ static inline int rtnetlink_fill_iwinfo(struct sk_buff *	skb,  	nlh = NLMSG_PUT(skb, 0, 0, type, sizeof(*r));  	r = NLMSG_DATA(nlh);  	r->ifi_family = AF_UNSPEC; +	r->__ifi_pad = 0;  	r->ifi_type = dev->type;  	r->ifi_index = dev->ifindex;  	r->ifi_flags = dev->flags;  | 
