lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 16 Dec 2013 17:12:06 +0900 From: Atzm Watanabe <atzm@...atosphere.co.jp> To: netdev@...r.kernel.org Cc: "Stephen Hemminger" <stephen@...workplumber.org>, "Ben Hutchings" <bhutchings@...arflare.com>, "David Miller" <davem@...emloft.net>, "Daniel Borkmann" <dborkman@...hat.com>, "David Laight" <David.Laight@...LAB.COM> Subject: [PATCH v3 2/3] packet: fill the gap of TPACKET_ALIGNMENT with zeros struct tpacket{2,3}_hdr is aligned to a multiple of TPACKET_ALIGNMENT. Explicitly defining and zeroing the gap of this makes additional changes easier. Signed-off-by: Atzm Watanabe <atzm@...atosphere.co.jp> --- include/uapi/linux/if_packet.h | 3 ++- net/packet/af_packet.c | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h index 1e24aa7..9185dc9 100644 --- a/include/uapi/linux/if_packet.h +++ b/include/uapi/linux/if_packet.h @@ -133,7 +133,7 @@ struct tpacket2_hdr { __u32 tp_sec; __u32 tp_nsec; __u16 tp_vlan_tci; - __u16 tp_padding; + __u8 tp_padding[6]; }; struct tpacket_hdr_variant1 { @@ -154,6 +154,7 @@ struct tpacket3_hdr { union { struct tpacket_hdr_variant1 hv1; }; + __u8 tp_padding[12]; }; struct tpacket_bd_ts { diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 1c8b982..5c75a1d 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -1929,8 +1929,9 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, } else { h.h2->tp_vlan_tci = 0; } - h.h2->tp_padding = 0; hdrlen = sizeof(*h.h2); + memset(h.h2->tp_padding, 0, + hdrlen - offsetof(struct tpacket2_hdr, tp_padding)); break; case TPACKET_V3: /* tp_nxt_offset,vlan are already populated above. @@ -1944,6 +1945,8 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, h.h3->tp_sec = ts.tv_sec; h.h3->tp_nsec = ts.tv_nsec; hdrlen = sizeof(*h.h3); + memset(h.h3->tp_padding, 0, + hdrlen - offsetof(struct tpacket3_hdr, tp_padding)); break; default: BUG(); -- 1.8.1.5 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists