Skip to content

Commit c8c4991

Browse files
miniplidavem330
authored andcommitted
Bluetooth: SCO - Fix missing msg_namelen update in sco_sock_recvmsg()
If the socket is in state BT_CONNECT2 and BT_SK_DEFER_SETUP is set in the flags, sco_sock_recvmsg() returns early with 0 without updating the possibly set msg_namelen member. This, in turn, leads to a 128 byte kernel stack leak in net/socket.c. Fix this by updating msg_namelen in this case. For all other cases it will be handled in bt_sock_recvmsg(). Cc: Marcel Holtmann <marcel@holtmann.org> Cc: Gustavo Padovan <gustavo@padovan.org> Cc: Johan Hedberg <johan.hedberg@gmail.com> Signed-off-by: Mathias Krause <minipli@googlemail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent e11e045 commit c8c4991

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

Diff for: net/bluetooth/sco.c

+1
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,7 @@ static int sco_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
665665
test_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags)) {
666666
hci_conn_accept(pi->conn->hcon, 0);
667667
sk->sk_state = BT_CONFIG;
668+
msg->msg_namelen = 0;
668669

669670
release_sock(sk);
670671
return 0;

0 commit comments

Comments
 (0)