aboutsummaryrefslogtreecommitdiff
path: root/net/ipv4/raw.c
diff options
context:
space:
mode:
authorJeferson Oliveira <jroliveira.oliveira301@gmail.com>2022-02-21 13:08:24 +0100
committerJeferson Oliveira <jroliveira.oliveira301@gmail.com>2022-02-21 13:08:36 +0100
commit9b192fc7d0d03c5485644ed0311d5037fee0fa15 (patch)
treed1651900969ca7b9787b7f5434f248df1c29fbd4 /net/ipv4/raw.c
parent1904adc0bb37e30c472eccb7bbe5e724d7cc2595 (diff)
parenta09b2d8f61ea0e9ae735c400399b97966a9418d6 (diff)
Merge tag 'v4.4.302' of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux into r11.1r11.1
This is the 4.4.302 stable release Change-Id: Ic0294f56b50ff2e461e0bee426dd28c25f1e741e
Diffstat (limited to 'net/ipv4/raw.c')
-rw-r--r--net/ipv4/raw.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
index 82a4b97f5e76..8e6cb5975e80 100644
--- a/net/ipv4/raw.c
+++ b/net/ipv4/raw.c
@@ -713,6 +713,7 @@ static int raw_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
int ret = -EINVAL;
int chk_addr_ret;
+ lock_sock(sk);
if (sk->sk_state != TCP_CLOSE || addr_len < sizeof(struct sockaddr_in))
goto out;
chk_addr_ret = inet_addr_type(sock_net(sk), addr->sin_addr.s_addr);
@@ -725,7 +726,9 @@ static int raw_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
inet->inet_saddr = 0; /* Use device */
sk_dst_reset(sk);
ret = 0;
-out: return ret;
+out:
+ release_sock(sk);
+ return ret;
}
/*