From: Johan Hedberg Date: Thu, 5 Jun 2014 09:19:54 +0000 (+0300) Subject: Bluetooth: Fix incorrectly overriding conn->src_type X-Git-Tag: v3.15.5~71 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=035f657a1668eaf7999909d6bb7cf293b56cedba;p=people%2Fms%2Flinux.git Bluetooth: Fix incorrectly overriding conn->src_type commit b62b65055bcc5372d5c3f4103629176cb8db3678 upstream. The src_type member of struct hci_conn should always reflect the address type of the src_member. It should never be overridden. There is already code in place in the command status handler of HCI_LE_Create_Connection to copy the right initiator address into conn->init_addr_type. Without this patch, if privacy is enabled, we will send the wrong address type in the SMP identity address information PDU (it'll e.g. contain our public address but a random address type). Signed-off-by: Johan Hedberg Signed-off-by: Marcel Holtmann Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index 521fd4f3985e..84b9291d75e3 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c @@ -584,11 +584,6 @@ static void hci_req_add_le_create_conn(struct hci_request *req, if (hci_update_random_address(req, false, &own_addr_type)) return; - /* Save the address type used for this connnection attempt so we able - * to retrieve this information if we need it. - */ - conn->src_type = own_addr_type; - cp.scan_interval = cpu_to_le16(hdev->le_scan_interval); cp.scan_window = cpu_to_le16(hdev->le_scan_window); bacpy(&cp.peer_addr, &conn->dst);