Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp4234091pxb; Mon, 4 Oct 2021 21:21:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyZZgxdZuIvW5hXiBIj94wb0mFCA6VMsEgZIUFUeMemJ6g6A9c9wcgKRnNOmesVXUlk+vDK X-Received: by 2002:a17:90a:10:: with SMTP id 16mr1213843pja.50.1633407693506; Mon, 04 Oct 2021 21:21:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633407693; cv=none; d=google.com; s=arc-20160816; b=eegLXLqQG2n1yR7wWEJ0Mea/C3RYhRxhPJ4c/3jyy++9xzG3QmLZz8K+dbdYpwk9jj ueNIWAGqQ0mSBVh3hxYv4ohui2qnoDSaXRgeg4OiYYhmDQZZQx9D/h5yq8nrnC4VC/E1 qAK64NKtRpgwCECyVWivVyfxo2klx4MRuHLqqHupMpQJnZooX7SmsH6RORJS99c5JG+g RHX2Ja0jUcu3SFL97+pDyB5aCj+1vOY9r/cp3yLN/hhbuE17881sYkfVvG8fDlXdc7qQ a9p4mwG7kRdibsjC2aiy1HXPkSgQAAH+IzE9BfW1iBh5lEQu0QU2Vb5APUe/ki23TLhA Q/9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=r7cxEpM+4WHP/b8mzWdiZ5dMML+KL4msuX+goC4vkNE=; b=GK3LzQUovSrU97Y3ngi2dGmgPUFkT5AZC9IHbik/NkGlbVrl7bUc8lHegbkAOeF6Ee 9s0f2ePx7l5hvrgf/c9idyWpUveRA7Zm2Ep4BTfdRhw1ucomd/CY/CykaoXVgf3HD61c 7Gsvpxbb1jskMItYs4t9iNWwNbxrikMprfOEl6Yf/Tt8qly81IYcBg8qLgsYKKi45x+5 dAaS1yZYWCDzEn1lim6oNNniM2Vfm4qAdk5iOwxvM0pb8tGn9i4byLSWd8n+liOQF1Qx XDYhapdgYwE/p7tSwuU6Tk2/empq3DtcJfUZvIqwZ0SELCunNhabBTpd2MNpWcd8X1qD xh8A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t21si22002859pfh.287.2021.10.04.21.21.20; Mon, 04 Oct 2021 21:21:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229800AbhJEEWd (ORCPT + 99 others); Tue, 5 Oct 2021 00:22:33 -0400 Received: from mga09.intel.com ([134.134.136.24]:33226 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229659AbhJEEWd (ORCPT ); Tue, 5 Oct 2021 00:22:33 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10127"; a="225546921" X-IronPort-AV: E=Sophos;i="5.85,347,1624345200"; d="scan'208";a="225546921" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Oct 2021 21:20:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,347,1624345200"; d="scan'208";a="487841397" Received: from intel-lenovo-legion-y540-15irh-pg0.iind.intel.com ([10.224.186.95]) by orsmga008.jf.intel.com with ESMTP; 04 Oct 2021 21:20:41 -0700 From: Kiran K To: linux-bluetooth@vger.kernel.org Cc: ravishankar.srivatsa@intel.com, chethan.tumkur.narayan@intel.com, tedd.an@intel.com, Kiran K Subject: [PATCH v1] Bluetooth: btintel: Fix bdaddress comparison with garbage value Date: Tue, 5 Oct 2021 09:56:13 +0530 Message-Id: <20211005042613.9946-1-kiran.k@intel.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Intel Read Verision(TLV) data is parsed into a local structure variable and it contains a field for bd address. Bd address is returned only in bootloader mode and hence bd address in TLV structure needs to be validated only if controller is present in boot loader mode. Signed-off-by: Kiran K --- drivers/bluetooth/btintel.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c index 9359bff47296..d1703cc99705 100644 --- a/drivers/bluetooth/btintel.c +++ b/drivers/bluetooth/btintel.c @@ -2081,14 +2081,16 @@ static int btintel_prepare_fw_download_tlv(struct hci_dev *hdev, if (ver->img_type == 0x03) { btintel_clear_flag(hdev, INTEL_BOOTLOADER); btintel_check_bdaddr(hdev); - } - - /* If the OTP has no valid Bluetooth device address, then there will - * also be no valid address for the operational firmware. - */ - if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { - bt_dev_info(hdev, "No device address configured"); - set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); + } else { + /* + * Check for valid bd address in boot loader mode. Device + * will be marked as unconfigured if empty bd address is + * found. + */ + if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { + bt_dev_info(hdev, "No device address configured"); + set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); + } } btintel_get_fw_name_tlv(ver, fwname, sizeof(fwname), "sfi"); @@ -2466,6 +2468,7 @@ static int btintel_setup_combined(struct hci_dev *hdev) goto exit_error; } + memset(&ver_tlv, 0, sizeof(ver_tlv)); /* For TLV type device, parse the tlv data */ err = btintel_parse_version_tlv(hdev, &ver_tlv, skb); if (err) { -- 2.17.1