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
| ||
|
Message-ID: <OF7B1ADDCA.711DCE7B-ON882573B5.00820D67-882573B5.0083AEF8@us.ibm.com> Date: Tue, 18 Dec 2007 15:56:22 -0800 From: David Stevens <dlstevens@...ibm.com> To: Brian Haley <brian.haley@...com> Cc: David Miller <davem@...emloft.net>, "netdev@...r.kernel.org" <netdev@...r.kernel.org>, netdev-owner@...r.kernel.org, YOSHIFUJI Hideaki <yoshfuji@...ux-ipv6.org> Subject: Re: [PATCH] [IPv6]: IPV6_MULTICAST_IF setting is ignored on link-local connect() Brian, OK, I see what you're trying to fix now. I think the scope_id checks are not quite right-- they should be something like this: if (addr_type&IPV6_ADDR_LINKLOCAL) { if (addr_len >= sizeof(struct sockaddr_in6)) { if (sk->sk_bound_dev_if && usin->sin6_scope_id && sk->sk_bound_dev_if != usin->sin6_scope_id) { err = -EINVAL; goto out; } if (usin->sin6_scope_id) sk->sk_bound_dev_if = usin->sin6_scope_id; if (!sk->sk_bound_dev_if && (addr_type & IPV6_ADDR_MULTICAST)) fl.oif = np->mcast_oif; } /* connect to the link-local addres requires an interface */ if (!sk->sk_bound_dev_if) { err = -EINVAL; goto out; } } That is (in English): If I did an SO_BINDTODEVICE and specified sin6_scope_id, then they better agree. If I specified sin6_scope_id without SO_BINDTODEVICE, set the device to that. If I get this far without a device and it's multicast, use mcast_oif If I get all through that and don't have a device, EINVAL. Does that work for you? +-DLS -- 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