[IPV6]: Do not change protocol for raw IPv6 sockets.
It is not allowed to change underlying protocol for int fd = socket(PF_INET6, SOCK_RAW, IPPROTO_UDP); Signed-off-by: Denis V. Lunev <den@openvz.org> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
This commit is contained in:
parent
91e1908f56
commit
49d074f400
@ -161,6 +161,9 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
|
|||||||
struct ipv6_txoptions *opt;
|
struct ipv6_txoptions *opt;
|
||||||
struct sk_buff *pktopt;
|
struct sk_buff *pktopt;
|
||||||
|
|
||||||
|
if (sk->sk_type == SOCK_RAW)
|
||||||
|
break;
|
||||||
|
|
||||||
if (sk->sk_protocol != IPPROTO_UDP &&
|
if (sk->sk_protocol != IPPROTO_UDP &&
|
||||||
sk->sk_protocol != IPPROTO_UDPLITE &&
|
sk->sk_protocol != IPPROTO_UDPLITE &&
|
||||||
sk->sk_protocol != IPPROTO_TCP)
|
sk->sk_protocol != IPPROTO_TCP)
|
||||||
|
Loading…
Reference in New Issue
Block a user