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>
This commit is contained in:
Jarno Rajahalme 2016-11-18 15:40:40 -08:00 committed by David S. Miller
parent d66016a777
commit 9403cd7cbb
3 changed files with 2 additions and 5 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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();