diff options
-rw-r--r-- | net/l2tp/l2tp_ip.c | 5 | ||||
-rw-r--r-- | net/l2tp/l2tp_ip6.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c index fce25afb652a..982f6c44ea01 100644 --- a/net/l2tp/l2tp_ip.c +++ b/net/l2tp/l2tp_ip.c | |||
@@ -251,8 +251,6 @@ static int l2tp_ip_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len) | |||
251 | int ret; | 251 | int ret; |
252 | int chk_addr_ret; | 252 | int chk_addr_ret; |
253 | 253 | ||
254 | if (!sock_flag(sk, SOCK_ZAPPED)) | ||
255 | return -EINVAL; | ||
256 | if (addr_len < sizeof(struct sockaddr_l2tpip)) | 254 | if (addr_len < sizeof(struct sockaddr_l2tpip)) |
257 | return -EINVAL; | 255 | return -EINVAL; |
258 | if (addr->l2tp_family != AF_INET) | 256 | if (addr->l2tp_family != AF_INET) |
@@ -267,6 +265,9 @@ static int l2tp_ip_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len) | |||
267 | read_unlock_bh(&l2tp_ip_lock); | 265 | read_unlock_bh(&l2tp_ip_lock); |
268 | 266 | ||
269 | lock_sock(sk); | 267 | lock_sock(sk); |
268 | if (!sock_flag(sk, SOCK_ZAPPED)) | ||
269 | goto out; | ||
270 | |||
270 | if (sk->sk_state != TCP_CLOSE || addr_len < sizeof(struct sockaddr_l2tpip)) | 271 | if (sk->sk_state != TCP_CLOSE || addr_len < sizeof(struct sockaddr_l2tpip)) |
271 | goto out; | 272 | goto out; |
272 | 273 | ||
diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c index ad3468c32b53..9978d01ba0ba 100644 --- a/net/l2tp/l2tp_ip6.c +++ b/net/l2tp/l2tp_ip6.c | |||
@@ -269,8 +269,6 @@ static int l2tp_ip6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len) | |||
269 | int addr_type; | 269 | int addr_type; |
270 | int err; | 270 | int err; |
271 | 271 | ||
272 | if (!sock_flag(sk, SOCK_ZAPPED)) | ||
273 | return -EINVAL; | ||
274 | if (addr->l2tp_family != AF_INET6) | 272 | if (addr->l2tp_family != AF_INET6) |
275 | return -EINVAL; | 273 | return -EINVAL; |
276 | if (addr_len < sizeof(*addr)) | 274 | if (addr_len < sizeof(*addr)) |
@@ -296,6 +294,9 @@ static int l2tp_ip6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len) | |||
296 | lock_sock(sk); | 294 | lock_sock(sk); |
297 | 295 | ||
298 | err = -EINVAL; | 296 | err = -EINVAL; |
297 | if (!sock_flag(sk, SOCK_ZAPPED)) | ||
298 | goto out_unlock; | ||
299 | |||
299 | if (sk->sk_state != TCP_CLOSE) | 300 | if (sk->sk_state != TCP_CLOSE) |
300 | goto out_unlock; | 301 | goto out_unlock; |
301 | 302 | ||