diff options
author | Jarno Rajahalme <jarno@ovn.org> | 2016-11-18 15:40:40 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-19 10:37:03 -0500 |
commit | 9403cd7cbb08aa3709c632decafa2014c8ed96e6 (patch) | |
tree | d15f6f474b928920f7969793fdde233ad187ffac | |
parent | d66016a77757b004b8637f44d87bedfc4a47b89c (diff) |
virtio_net: Do not clear memory for struct virtio_net_hdr twice.
virtio_net_hdr_from_skb() clears the memory for the header, so there
is no point for the callers to do the same.
Signed-off-by: Jarno Rajahalme <jarno@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/tun.c | 3 | ||||
-rw-r--r-- | include/linux/virtio_net.h | 2 | ||||
-rw-r--r-- | net/packet/af_packet.c | 2 |
3 files changed, 2 insertions, 5 deletions
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 3b8d8cc6d2ea..64e694c68d99 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1360,8 +1360,7 @@ static ssize_t tun_put_user(struct tun_struct *tun, } if (vnet_hdr_sz) { - struct virtio_net_hdr gso = { 0 }; /* no info leak */ - int ret; + struct virtio_net_hdr gso; if (iov_iter_count(iter) < vnet_hdr_sz) return -EINVAL; diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h index 74f1e3363506..66204007d7ac 100644 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h @@ -58,7 +58,7 @@ static inline int virtio_net_hdr_from_skb(const struct sk_buff *skb, struct virtio_net_hdr *hdr, bool little_endian) { - memset(hdr, 0, sizeof(*hdr)); + memset(hdr, 0, sizeof(*hdr)); /* no info leak */ if (skb_is_gso(skb)) { struct skb_shared_info *sinfo = skb_shinfo(skb); diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index d2238b204691..abe6c0b6683c 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -1970,8 +1970,6 @@ static unsigned int run_filter(struct sk_buff *skb, static int __packet_rcv_vnet(const struct sk_buff *skb, struct virtio_net_hdr *vnet_hdr) { - *vnet_hdr = (const struct virtio_net_hdr) { 0 }; - if (virtio_net_hdr_from_skb(skb, vnet_hdr, vio_le())) BUG(); |