diff options
| author | Ralf Baechle <ralf@linux-mips.org> | 2013-02-21 12:51:33 +0100 | 
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2013-02-21 12:51:33 +0100 | 
| commit | 8bfc245f9ad7bd4e461179e4e7852ef99b8b6144 (patch) | |
| tree | 0ad091f645fbc8318634599d278966a53d3922ee /net/bluetooth/smp.c | |
| parent | 612663a974065c3445e641d046769fe4c55a6438 (diff) | |
| parent | 535237cecab2b078114be712c67e89a0db61965f (diff) | |
| download | olio-linux-3.10-8bfc245f9ad7bd4e461179e4e7852ef99b8b6144.tar.xz olio-linux-3.10-8bfc245f9ad7bd4e461179e4e7852ef99b8b6144.zip  | |
Merge branch 'mips-next-3.9' of git://git.linux-mips.org/pub/scm/john/linux-john into mips-for-linux-next
Diffstat (limited to 'net/bluetooth/smp.c')
| -rw-r--r-- | net/bluetooth/smp.c | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c index 68a9587c969..5abefb12891 100644 --- a/net/bluetooth/smp.c +++ b/net/bluetooth/smp.c @@ -859,6 +859,19 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb)  	skb_pull(skb, sizeof(code)); +	/* +	 * The SMP context must be initialized for all other PDUs except +	 * pairing and security requests. If we get any other PDU when +	 * not initialized simply disconnect (done if this function +	 * returns an error). +	 */ +	if (code != SMP_CMD_PAIRING_REQ && code != SMP_CMD_SECURITY_REQ && +	    !conn->smp_chan) { +		BT_ERR("Unexpected SMP command 0x%02x. Disconnecting.", code); +		kfree_skb(skb); +		return -ENOTSUPP; +	} +  	switch (code) {  	case SMP_CMD_PAIRING_REQ:  		reason = smp_cmd_pairing_req(conn, skb);  |