Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp3230237ybx; Sun, 3 Nov 2019 13:59:08 -0800 (PST) X-Google-Smtp-Source: APXvYqyb5VUTAnVJ9HjBe4d5ygkughvuwLI61rJQv28GLjFCB7/08ZrieLvmselfZdnJaCAt3n0F X-Received: by 2002:a05:6402:602:: with SMTP id n2mr5192955edv.23.1572818347953; Sun, 03 Nov 2019 13:59:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1572818347; cv=none; d=google.com; s=arc-20160816; b=gxOs7N1bhZKpNKDotx7xbyQUP0iS3d6ODEoGWi2HnkiHYlD61hoIPDbPtQ1cBeQIiZ mCANaFng6rWiwQCKfMwoijKTCsS1yq9WicPpTmg0TEfthGH8qvsWJuCqEczAufXyuZCR qlGXJXXZxjATArBkMT/ZUrME1AM0UsF8MlE42CY21oC8TuYNYfekVNab8hnHINFL2pzm +3g5/nQ7rAb5hhU6/19GlC8ERRqVZ+t8avf5sGzxXUTpGI4Kr+kPn5Q9kYh/Y25lUYwq WKoE+RqSE+4YKKbN3vlVyPHxYlAmVeoCA1JgMbJfRqkllfd51xNix2d5pGn6fgLYP8vc UKCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:to:from:dkim-signature; bh=4LoSN4zz48wYQUaxJUvsKmgcngK1miOEYkQqlL7Bdd0=; b=iI2BdTQBCfmqpK+zqFnGwaC53UiMGP3cl9F3QcLg2ZUPsuz+OLHspf1M+fqZTCW3ek AzeumaABuLekNOh3DPptU0Ziqmiz4DGpPTkdzZJMvoLf0relEA/j9alHbtlliObT8jS/ y8g/wEnN509gNNDKnTcXb1MNW6w+Bpb89bHIPCvxgDR3SycZ2pPVF4hcWaL2VpLiBz+n 75cFQF5l3fav76livVsLsa97PbamxQG+tE04ZqnzfSwh8umncdOhQ+bvk7m86QOJFEh+ Ky14ZwEHzkfEocXA7071X+7+4OB11Q56cKiExsv9CxhusYBrZSI51f0AtSXu38WCGsDn JcqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tNk+m2eW; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si6335092edm.231.2019.11.03.13.58.27; Sun, 03 Nov 2019 13:59:07 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tNk+m2eW; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728258AbfKCV6U (ORCPT + 99 others); Sun, 3 Nov 2019 16:58:20 -0500 Received: from mail-lf1-f67.google.com ([209.85.167.67]:43676 "EHLO mail-lf1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728227AbfKCV6U (ORCPT ); Sun, 3 Nov 2019 16:58:20 -0500 Received: by mail-lf1-f67.google.com with SMTP id j5so10753035lfh.10 for ; Sun, 03 Nov 2019 13:58:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=4LoSN4zz48wYQUaxJUvsKmgcngK1miOEYkQqlL7Bdd0=; b=tNk+m2eWNPj6zlCOKsVouPfpWajKZMn2x2CTlVh5WBb6tBjCYDQNY2rMf5Kgiq3FH0 SJDtTrtbEgm2v64gxdgb8IAhSWfpxuyQz6D+3KQQ7Ur3wkxtuIuxNZYh/w2+l9LygYLh wDzj2XyRypkVLvIUsm6r9J1lRbTlILBB/JUocmUwBicBuYtQ4V9a/VM9y5eQOIzMcr4j FW9hr6a7kVcLQGDt9Pf6o7nZktcbGlNcVN3xC0C9WfD2SttuwhXxkVakCiWBSwRMjPW2 ABTEe/9m41KSMyM5pVt1LBzLWciNWt4rpLSx8HSB2U1H1NWJwKdyWJfQpFo4FsTTmZBJ j0WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=4LoSN4zz48wYQUaxJUvsKmgcngK1miOEYkQqlL7Bdd0=; b=HQnAsv0B+e7sgBELvTFQ4toGEohRny7Rcv7RTL8OkTq2dIj/vToU3VtnMjLPx01POe 9jEfUZbgbw9A7YClATQa30kQ2/2m8nf6JPM66z9FL86GezEGqQR0TecFtDWtlMBMyQNx LjryiJEjvDoPo8WTVX5voFtm9q5QALvUBJL22Hv2p3cVaK94S+6q04gPCfAtrOpkTGRu bPduPPGvrEz9e2wV+FXfWPE9IhGbKVOabNPQ8cOhleX+jqYQTOAwU+HD0nkjS4fC5LUz 95bE6IfRSIdpu7z0fnFNJR2/Hq7ssWxWdZ7scX9Xv4hv0GXmNetOTa18WDBAtpdiVtUh 9tCg== X-Gm-Message-State: APjAAAXXaGbMmljA4qxD2e8qlwz0bELeke7GLv3yPuPNvqG2GlmasTHP h2u34FKpBJHWwGOLITx5R4X9WJHBMUY= X-Received: by 2002:a19:746:: with SMTP id 67mr14372791lfh.42.1572818297501; Sun, 03 Nov 2019 13:58:17 -0800 (PST) Received: from vudentzs-t460s.www.huaweimobilewifi.com (83-245-238-236-nat-p.elisa-mobile.fi. [83.245.238.236]) by smtp.gmail.com with ESMTPSA id g3sm5805104ljj.59.2019.11.03.13.58.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 Nov 2019 13:58:16 -0800 (PST) From: Luiz Augusto von Dentz To: linux-bluetooth@vger.kernel.org Subject: [PATCH] Bluetooth: Fix advertising duplicated flags Date: Sun, 3 Nov 2019 23:58:15 +0200 Message-Id: <20191103215815.5310-1-luiz.dentz@gmail.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org From: Luiz Augusto von Dentz Instances may have flags set as part of its data in which case the code should not attempt to add it again otherwise it can cause duplication: < HCI Command: LE Set Extended Advertising Data (0x08|0x0037) plen 35 Handle: 0x00 Operation: Complete extended advertising data (0x03) Fragment preference: Minimize fragmentation (0x01) Data length: 0x06 Flags: 0x04 BR/EDR Not Supported Flags: 0x06 LE General Discoverable Mode BR/EDR Not Supported Signed-off-by: Luiz Augusto von Dentz --- net/bluetooth/hci_request.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c index ba99c292cf04..2a1b64dbf76e 100644 --- a/net/bluetooth/hci_request.c +++ b/net/bluetooth/hci_request.c @@ -1273,6 +1273,14 @@ static u8 create_instance_adv_data(struct hci_dev *hdev, u8 instance, u8 *ptr) instance_flags = get_adv_instance_flags(hdev, instance); + /* If instance already has the flags set skip adding it once + * again. + */ + if (adv_instance && eir_get_data(adv_instance->adv_data, + adv_instance->adv_data_len, EIR_FLAGS, + NULL)) + goto skip_flags; + /* The Add Advertising command allows userspace to set both the general * and limited discoverable flags. */ @@ -1305,6 +1313,7 @@ static u8 create_instance_adv_data(struct hci_dev *hdev, u8 instance, u8 *ptr) } } +skip_flags: if (adv_instance) { memcpy(ptr, adv_instance->adv_data, adv_instance->adv_data_len); -- 2.21.0