Bluetooth: Fix handling of getpeername() for HCI sockets
authorMarcel Holtmann <marcel@holtmann.org>
Mon, 26 Aug 2013 07:06:30 +0000 (00:06 -0700)
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>
Mon, 16 Sep 2013 17:35:54 +0000 (14:35 -0300)
The HCI sockets do not have a peer associated with it and so make sure
that getpeername() returns EOPNOTSUPP since this operation is actually
not supported on HCI sockets.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
net/bluetooth/hci_sock.c

index c45ec25aefb9566aa97054104f5b3db270436167..d8589410142fb862cf834ab06685e04ce49cb084 100644 (file)
@@ -699,6 +699,9 @@ static int hci_sock_getname(struct socket *sock, struct sockaddr *addr,
 
        BT_DBG("sock %p sk %p", sock, sk);
 
+       if (peer)
+               return -EOPNOTSUPP;
+
        if (!hdev)
                return -EBADFD;