Bluetooth: Fix allowing SMP Signing info PDU
authorJohan Hedberg <johan.hedberg@intel.com>
Tue, 9 Sep 2014 23:21:46 +0000 (16:21 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 9 Sep 2014 23:45:01 +0000 (01:45 +0200)
If the remote side is not distributing its IRK but is distributing the
CSRK the next PDU after master identification is the Signing
Information. This patch fixes a missing SMP_ALLOW_CMD() for this in the
smp_cmd_master_ident() function.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/smp.c

index 25c9040e0b1297e6ecc114d1d3405b37b707b07c..dc575aba2e65c489bb0b75b34a7db83763f33158 100644 (file)
@@ -1324,6 +1324,8 @@ static int smp_cmd_master_ident(struct l2cap_conn *conn, struct sk_buff *skb)
        SMP_DISALLOW_CMD(smp, SMP_CMD_MASTER_IDENT);
        if (smp->remote_key_dist & SMP_DIST_ID_KEY)
                SMP_ALLOW_CMD(smp, SMP_CMD_IDENT_INFO);
+       else if (smp->remote_key_dist & SMP_DIST_SIGN)
+               SMP_ALLOW_CMD(smp, SMP_CMD_SIGN_INFO);
 
        skb_pull(skb, sizeof(*rp));