mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-15 21:23:23 +00:00
af_unix: Move !sunaddr case in unix_dgram_sendmsg().
When other is NULL in unix_dgram_sendmsg(), we check if sunaddr is NULL before looking up a receiver socket. There are three paths going through the check, but it's always false for 2 out of the 3 paths: the first socket lookup and the second 'goto restart'. The condition can be true for the first 'goto restart' only when SOCK_DEAD is flagged for the socket found with msg->msg_name. Let's move the check to the single appropriate path. Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
001a25088c
commit
f4dd63165b
@ -2046,11 +2046,6 @@ static int unix_dgram_sendmsg(struct socket *sock, struct msghdr *msg,
|
||||
|
||||
restart:
|
||||
if (!other) {
|
||||
if (!sunaddr) {
|
||||
err = -ECONNRESET;
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
other = unix_find_other(sock_net(sk), sunaddr, msg->msg_namelen,
|
||||
sk->sk_type);
|
||||
if (IS_ERR(other)) {
|
||||
@ -2105,6 +2100,9 @@ restart_locked:
|
||||
err = -ECONNREFUSED;
|
||||
} else {
|
||||
unix_state_unlock(sk);
|
||||
|
||||
if (!sunaddr)
|
||||
err = -ECONNRESET;
|
||||
}
|
||||
|
||||
other = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user