Skip to content

Commit

Permalink
phonet/pep: refuse to enable an unbound pipe
Browse files Browse the repository at this point in the history
commit 75a2f31 upstream.

This ioctl() implicitly assumed that the socket was already bound to
a valid local socket name, i.e. Phonet object. If the socket was not
bound, two separate problems would occur:

1) We'd send an pipe enablement request with an invalid source object.
2) Later socket calls could BUG on the socket unexpectedly being
   connected yet not bound to a valid object.

Reported-by: syzbot+2dc91e7fc3dea88b1e8a@syzkaller.appspotmail.com
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Rémi Denis-Courmont authored and gregkh committed Dec 29, 2021
1 parent 7dd52af commit 52ad5da
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions net/phonet/pep.c
Expand Up @@ -946,6 +946,8 @@ static int pep_ioctl(struct sock *sk, int cmd, unsigned long arg)
ret = -EBUSY;
else if (sk->sk_state == TCP_ESTABLISHED)
ret = -EISCONN;
else if (!pn->pn_sk.sobject)
ret = -EADDRNOTAVAIL;
else
ret = pep_sock_enable(sk, NULL, 0);
release_sock(sk);
Expand Down

0 comments on commit 52ad5da

Please sign in to comment.