From 7fdfa685a1a45e23cd936bfd86a41602aaef3432 Mon Sep 17 00:00:00 2001 From: Brian Haley Date: Thu, 11 Oct 2007 14:39:29 -0700 Subject: [PATCH] --- yaml --- r: 67074 b: refs/heads/master c: 4953f0fcc06a125f87874743d968c0e185c8b296 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv6/ipv6_sockglue.c | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 64a1564ec501..fa720e86eac3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 73aaf9355b71d295fd72dc0b93fcdd275c56648f +refs/heads/master: 4953f0fcc06a125f87874743d968c0e185c8b296 diff --git a/trunk/net/ipv6/ipv6_sockglue.c b/trunk/net/ipv6/ipv6_sockglue.c index 532425db11fe..1334fc174bcf 100644 --- a/trunk/net/ipv6/ipv6_sockglue.c +++ b/trunk/net/ipv6/ipv6_sockglue.c @@ -539,12 +539,15 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname, case IPV6_MULTICAST_IF: if (sk->sk_type == SOCK_STREAM) goto e_inval; - if (sk->sk_bound_dev_if && sk->sk_bound_dev_if != val) - goto e_inval; - if (__dev_get_by_index(&init_net, val) == NULL) { - retv = -ENODEV; - break; + if (val) { + if (sk->sk_bound_dev_if && sk->sk_bound_dev_if != val) + goto e_inval; + + if (__dev_get_by_index(&init_net, val) == NULL) { + retv = -ENODEV; + break; + } } np->mcast_oif = val; retv = 0;