Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp4732470ybc; Tue, 26 Nov 2019 13:48:08 -0800 (PST) X-Google-Smtp-Source: APXvYqyFI1emWZVyewRaWMrdo+T0P0blcIk3maIwirWZ2FU1xG0gMcmmzdTd8jhJa1GVpYrkuvi7 X-Received: by 2002:a50:ec97:: with SMTP id e23mr28027807edr.111.1574804888125; Tue, 26 Nov 2019 13:48:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574804888; cv=none; d=google.com; s=arc-20160816; b=u1U2Wsz11QQrqLshireKlFC1bZ1pHgOvl0Tw3v56ME+d9QhsSFw4mUvnhNncOlNTk9 teSSjBOq3KcZ6B/PYWYAiFTDfBv7SLmuEBXSE/tEGeGTkgT1z38lglU/rQ4qOtZHCGIF 5R4uhH5WIKRryrZXkgT/+3L//bNAcLIx1n565RKXoaLAFsS6S06kfO3ql+7O1WXwfpdH wDglGpGaaxk4uctuAKOu6vZnuMlraab6Iiq8rWCUPSTU2TuM86ZtG5LUr8iBiseq3Ojk fld69qMECn4m4oqmfcPQesr0aBFZVSpirfk7SJZBbBIm39ZuGWwqS+QP6U1RlzZcaQO6 hMHg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=kTSzFQ4JOV1AgOCNC6AJqcAijv9DrTxZODQJq7vRBXQ=; b=FIoei/p2crggefr7XfWbycu1589dVJ6iqjE2M1lxkL5QrG6E06McJhoeDkYacwiAtz 4aMd4G05M7QFSHjYNCz4yPNcZo+uBnKg/kf9wcKyqgXCUr8mpyqf1CchOdpgE5s4u8aG tm8MIoW4N3c/Uy4+j4xqm1nyJhZGI4lHkCKVwT2TZQzFXtBs2zvjOapvpHyhHALEBJ/c EuHGFJVCXJvAhtAA2eBcBjO+hUKQPmfRnQHTqVXwl4R3rmq0Rh87pTl59NQVrJhDc5Px 9YI/B7mFszUvdej5Mp1+lMP+9wCe+8im1ZnfPE7qvBM2R2W1B5aflbLEEgNGPGd1+ac0 nDdw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r19si8145161edy.130.2019.11.26.13.47.39; Tue, 26 Nov 2019 13:48:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727040AbfKZVrT (ORCPT + 99 others); Tue, 26 Nov 2019 16:47:19 -0500 Received: from smail.rz.tu-ilmenau.de ([141.24.186.67]:46392 "EHLO smail.rz.tu-ilmenau.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726118AbfKZVrT (ORCPT ); Tue, 26 Nov 2019 16:47:19 -0500 Received: from localhost.localdomain (unknown [141.24.207.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smail.rz.tu-ilmenau.de (Postfix) with ESMTPSA id 061E458007E; Tue, 26 Nov 2019 22:47:17 +0100 (CET) From: Markus Theil To: nbd@nbd.name Cc: linux-wireless@vger.kernel.org, lorenzo.bianconi@redhat.com, Stanislaw Gruszka , Markus Theil Subject: [PATCH v9 3/6] mt76: mt76x02: add check for invalid vif idx Date: Tue, 26 Nov 2019 22:47:01 +0100 Message-Id: <20191126214704.27297-4-markus.theil@tu-ilmenau.de> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191126214704.27297-1-markus.theil@tu-ilmenau.de> References: <20191126214704.27297-1-markus.theil@tu-ilmenau.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On adding vifs the idx can become 1 + (7 & 7) = 8 for APs. Check against that, as only AP vif idx 0-7 is possible. Signed-off-by: Markus Theil --- drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c index 889566b36a40..6073f8a4a8f6 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c @@ -325,7 +325,9 @@ mt76x02_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) if (vif->type == NL80211_IFTYPE_STATION) idx += 8; - if (dev->vif_mask & BIT(idx)) + /* vif is already set or idx is 8 for AP/Mesh/... */ + if (dev->vif_mask & BIT(idx) || + (vif->type != NL80211_IFTYPE_STATION && idx > 7)) return -EBUSY; dev->vif_mask |= BIT(idx); -- 2.24.0