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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 07 Oct 2008 16:07:02 -0700 (PDT)
From:	David Miller <davem@...emloft.net>
To:	j.neuner@...workharbor.com
Cc:	netdev@...r.kernel.org, kaber@...sh.net
Subject: Re: IGMP sent to Foreign VLAN

From: Jarod Neuner <j.neuner@...workharbor.com>
Date: Mon, 6 Oct 2008 14:51:47 -0500

> I noticed a problem where the kernel is not responding to IGMP Queries
> from several Level-3 network switches.  This behavior is caused by these
> switches using VLAN tags on IGMP messages.  At first I thought the
> switches were out of spec, but every other network stack I've checked
> delivers packets with unconfigured VLAN assignments directly to the
> incoming interface.  
> 
> This patch corrects my problem, but I'm still interested in discussion
> about whether or not this should be a parameter in /proc/sys/net or even
> if this policy change should be applied elsewhere in the the network
> stack.

Interesting.

Patrick, any opinion?

> diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
> index 4bf014e..b65a8fd 100644
> --- a/net/8021q/vlan_dev.c
> +++ b/net/8021q/vlan_dev.c
> @@ -158,9 +158,13 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev,
>         rcu_read_lock();
>         skb->dev = __find_vlan_dev(dev, vlan_id);
>         if (!skb->dev) {
> -               pr_debug("%s: ERROR: No net_device for VID: %u on dev: %s\n",
> +               pr_debug("%s: WARNING: Forwarding VID: %u to dev: %s\n",
>                          __func__, vlan_id, dev->name);
> -               goto err_unlock;
> +               skb->dev = dev;
> +               skb_pull_rcsum(skb, VLAN_HLEN);
> +               vlan_set_encap_proto(skb, vhdr);
> +               rcu_read_lock();
> +               return 0;
>         }
> 
>         skb->dev->last_rx = jiffies;
> 
> 
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ