[NETLINK]: Missing padding fields in dumped structures
Patrick McHardy [Tue, 28 Jun 2005 19:56:45 +0000 (12:56 -0700)]
Plug holes with padding fields and initialized them to zero.

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

include/linux/pkt_cls.h
include/linux/pkt_sched.h
include/linux/rtnetlink.h
net/ipv6/addrconf.c
net/sched/cls_rsvp.h
net/sched/sch_cbq.c

index 25d2d67..bd2c5a2 100644 (file)
@@ -276,6 +276,7 @@ struct tc_rsvp_pinfo
        __u8    protocol;
        __u8    tunnelid;
        __u8    tunnelhdr;
+       __u8    pad;
 };
 
 /* ROUTE filter */
index 1d9da36..60ffcb9 100644 (file)
@@ -221,9 +221,11 @@ struct tc_gred_qopt
 /* gred setup */
 struct tc_gred_sopt
 {
-       __u32           DPs;
-       __u32           def_DP;
-       __u8            grio;
+       __u32           DPs;
+       __u32           def_DP;
+       __u8            grio;
+       __u8            pad1;
+       __u16           pad2;
 };
 
 /* HTB section */
@@ -351,6 +353,7 @@ struct tc_cbq_ovl
 #define        TC_CBQ_OVL_DROP         3
 #define        TC_CBQ_OVL_RCLASSIC     4
        unsigned char   priority2;
+       __u16           pad;
        __u32           penalty;
 };
 
index dc26e82..657c05a 100644 (file)
@@ -363,6 +363,8 @@ enum
 struct rta_session
 {
        __u8    proto;
+       __u8    pad1;
+       __u16   pad2;
 
        union {
                struct {
@@ -635,10 +637,13 @@ struct ifinfomsg
 struct prefixmsg
 {
        unsigned char   prefix_family;
+       unsigned char   prefix_pad1;
+       unsigned short  prefix_pad2;
        int             prefix_ifindex;
        unsigned char   prefix_type;
        unsigned char   prefix_len;
        unsigned char   prefix_flags;
+       unsigned char   prefix_pad3;
 };
 
 enum 
index 8140bed..1b2902d 100644 (file)
@@ -3031,9 +3031,12 @@ static int inet6_fill_prefix(struct sk_buff *skb, struct inet6_dev *idev,
        nlh = NLMSG_NEW(skb, pid, seq, event, sizeof(*pmsg), flags);
        pmsg = NLMSG_DATA(nlh);
        pmsg->prefix_family = AF_INET6;
+       pmsg->prefix_pad1 = 0;
+       pmsg->prefix_pad2 = 0;
        pmsg->prefix_ifindex = idev->dev->ifindex;
        pmsg->prefix_len = pinfo->prefix_len;
        pmsg->prefix_type = pinfo->type;
+       pmsg->prefix_pad3 = 0;
        
        pmsg->prefix_flags = 0;
        if (pinfo->onlink)
index 232fb91..006168d 100644 (file)
@@ -618,6 +618,7 @@ static int rsvp_dump(struct tcf_proto *tp, unsigned long fh,
        pinfo.protocol = s->protocol;
        pinfo.tunnelid = s->tunnelid;
        pinfo.tunnelhdr = f->tunnelhdr;
+       pinfo.pad = 0;
        RTA_PUT(skb, TCA_RSVP_PINFO, sizeof(pinfo), &pinfo);
        if (f->res.classid)
                RTA_PUT(skb, TCA_RSVP_CLASSID, 4, &f->res.classid);
index baeb311..09453f9 100644 (file)
@@ -1528,6 +1528,7 @@ static __inline__ int cbq_dump_ovl(struct sk_buff *skb, struct cbq_class *cl)
 
        opt.strategy = cl->ovl_strategy;
        opt.priority2 = cl->priority2+1;
+       opt.pad = 0;
        opt.penalty = (cl->penalty*1000)/HZ;
        RTA_PUT(skb, TCA_CBQ_OVL_STRATEGY, sizeof(opt), &opt);
        return skb->len;