aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2014-03-24 11:36:25 -0400
committerMarcel Holtmann <marcel@holtmann.org>2014-03-24 11:43:47 -0400
commit61b3b2b6f4d754aaa84606e041556369bb5a107b (patch)
treeebabc4b015fe70c6c584a91dd0a1f589308332bc
parent1d98bf4fda5f76563a9718b59e3ac5a65fd36a51 (diff)
Bluetooth: Fix potential NULL pointer dereference in smp_conn_security
The smp pointer might not be initialized for jumps to the "done" label in the smp_conn_security function. Furthermore doing the set_bit after done might "overwrite" a previous value of the flag in case pairing was already in progress. This patch moves the call to set_bit before the label so that it is only done for a newly created smp context (as returned by smp_chan_create). Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r--net/bluetooth/smp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c
index 10a8e622ab2b..c654c5880912 100644
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
@@ -930,9 +930,9 @@ int smp_conn_security(struct hci_conn *hcon, __u8 sec_level)
930 smp_send_cmd(conn, SMP_CMD_SECURITY_REQ, sizeof(cp), &cp); 930 smp_send_cmd(conn, SMP_CMD_SECURITY_REQ, sizeof(cp), &cp);
931 } 931 }
932 932
933done:
934 set_bit(SMP_FLAG_INITIATOR, &smp->smp_flags); 933 set_bit(SMP_FLAG_INITIATOR, &smp->smp_flags);
935 934
935done:
936 hcon->pending_sec_level = sec_level; 936 hcon->pending_sec_level = sec_level;
937 937
938 return 0; 938 return 0;