Bluetooth: Fix L2CAP Disconnect response for unknown CID
authorJohan Hedberg <johan.hedberg@intel.com>
Mon, 16 Sep 2013 10:05:15 +0000 (13:05 +0300)
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>
Wed, 18 Sep 2013 21:44:32 +0000 (16:44 -0500)
If we receive an L2CAP Disconnect Request for an unknown CID we should
not just silently drop it but reply with a proper Command Reject
response. This patch fixes this by ensuring that the disconnect handler
returns a proper error instead of 0 and will cause the function caller
to send the right response.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
net/bluetooth/l2cap_core.c

index eb60cf78af7743897e6cbeb299788c059e93c35d..31bf8127599021fa36f2a4210fdb43ae2127980b 100644 (file)
@@ -4206,7 +4206,7 @@ static inline int l2cap_disconnect_req(struct l2cap_conn *conn,
        chan = __l2cap_get_chan_by_scid(conn, dcid);
        if (!chan) {
                mutex_unlock(&conn->chan_lock);
-               return 0;
+               return -EBADSLT;
        }
 
        l2cap_chan_lock(chan);