aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/raw.c
diff options
context:
space:
mode:
authorDaniel Lezcano <dlezcano@fr.ibm.com>2008-01-11 01:43:18 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:01:44 -0500
commitbfeade087005278fc8cafe230b7658a4f40c5acb (patch)
treed9bbacab07552cc6c33f9f022a34af2391d9ecc1 /net/ipv6/raw.c
parent3c40090a0f5b69deecc5ca615f994957f949333d (diff)
[NETNS][IPV6]: inet6_addr - check ipv6 address per namespace
When a new address is added, we must check if the new address does not already exists. This patch makes this check to be aware of a network namespace, so the check will look if the address already exists for the specified network namespace. While the addresses are browsed, the addresses which do not belong to the namespace are discarded. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com> Signed-off-by: Benjamin Thery <benjamin.thery@bull.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/raw.c')
-rw-r--r--net/ipv6/raw.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index 45a580e843dc..cb0b110a2ac8 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -298,7 +298,8 @@ static int rawv6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
298 v4addr = LOOPBACK4_IPV6; 298 v4addr = LOOPBACK4_IPV6;
299 if (!(addr_type & IPV6_ADDR_MULTICAST)) { 299 if (!(addr_type & IPV6_ADDR_MULTICAST)) {
300 err = -EADDRNOTAVAIL; 300 err = -EADDRNOTAVAIL;
301 if (!ipv6_chk_addr(&addr->sin6_addr, dev, 0)) { 301 if (!ipv6_chk_addr(&init_net, &addr->sin6_addr,
302 dev, 0)) {
302 if (dev) 303 if (dev)
303 dev_put(dev); 304 dev_put(dev);
304 goto out; 305 goto out;