Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp1777628pxb; Thu, 16 Sep 2021 15:38:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwWbIrLmUHLtQQ1e7VVhR5xuk7getKv8+MQbi9yN1K4MBuY3L5cW85DepYoWPF/O1g+4+e7 X-Received: by 2002:a02:2712:: with SMTP id g18mr6102889jaa.115.1631831891610; Thu, 16 Sep 2021 15:38:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631831891; cv=none; d=google.com; s=arc-20160816; b=V7Mkoue/66Y/CpNCInWzGpJAWyTt8/Oc1XxAT0u9opXQa/nhSZbA3qf8rJI3N/Fx4p +AnIiwaYY91shyi5EY5AulSG7ksg0mPcTSPuY6DrJDykpfvuqvPjzhKLf1pG3cTxxFtd 1TlKX20NP4jDpQ553v+9Cm9TCWxN80w5ZUgO05Jepy6nnGizO3p9iUk/+C5BSZ+x0wQi HseFktW/pScnEtVzk/YcvAGXWLCtF1PEYxtN87ZLXn9xnd0dRBFFv6qL3EYa9C08S3VD p1+m5A5RhoD/JZHiUpy75q7C+ez7YcXjgUsqVqEGc6VRxTTi2fAr+W6Cxa9UZe8RbbOW A9SA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=FV1HyboDtalL+QeKEyvTWWFigR/8J3vcdLMPo68UX7E=; b=aovMzrxM8W9HjgDWhBDtuAQQeDgyJVrk8Gj5dYppSnO9iMfQ7uskDodK5O3u6Z6mNE raABeclQOv+krbJh+y2x1UzITnsDhU63tpZ+YDhY13h4EDly2hT6FVXLXjCcZa/P7Q7e lcizJ9BRJv1mQXan3eZ/1UKTmPBGyHUhWzOtKjWk+ZBTsOl+2pvO/0jQ5Ft825tfzcw1 OK4GMu4TlDxXOa1xQHDNcgup3vnJ3XYNpjYcN8nZm209PJnBKPX1qnovQT2nGeEvTqAB feDqBaERBfRrL5WDhSzKpo43S6Zlz9mQ4Tx7bkcjLIkFFwt1tyuEqnqHxS/+x+un0nqp 67Rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=XubL0OFK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g19si3998475ilb.43.2021.09.16.15.37.59; Thu, 16 Sep 2021 15:38:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=XubL0OFK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244895AbhIPQrx (ORCPT + 99 others); Thu, 16 Sep 2021 12:47:53 -0400 Received: from mail.kernel.org ([198.145.29.99]:57378 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343554AbhIPQm3 (ORCPT ); Thu, 16 Sep 2021 12:42:29 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 6349160F58; Thu, 16 Sep 2021 16:24:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631809480; bh=cVzuaQ2uqDC6xVYgHkhTzbNHaKughqasOwpslbxgqfQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XubL0OFKCqkC66uz+BIhdQx/Mg/nT/uaKsTCMBZCxjICgAxsQZfWbgG4L1M2T358z Fx6bttf0zH3GzRByqw41NGRJDdyT4glH5cwuIE5SPNO9yOZwqZ3Km5qIoCRydVsYwI MAgdtC0k9/ZdJEqqIqWsl3sTQPdlSEaY/qBDUDSA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Aleksandr Loktionov , Sasha Neftin , Dvora Fuxbrumer , Tony Nguyen , Sasha Levin Subject: [PATCH 5.13 169/380] igc: Check if num of q_vectors is smaller than max before array access Date: Thu, 16 Sep 2021 17:58:46 +0200 Message-Id: <20210916155809.831596673@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916155803.966362085@linuxfoundation.org> References: <20210916155803.966362085@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sasha Neftin [ Upstream commit 373e2829e7c2e1e606503cdb5c97749f512a4be9 ] Ensure that the adapter->q_vector[MAX_Q_VECTORS] array isn't accessed beyond its size. It was fixed by using a local variable num_q_vectors as a limit for loop index, and ensure that num_q_vectors is not bigger than MAX_Q_VECTORS. Suggested-by: Aleksandr Loktionov Signed-off-by: Sasha Neftin Tested-by: Dvora Fuxbrumer Signed-off-by: Tony Nguyen Signed-off-by: Sasha Levin --- drivers/net/ethernet/intel/igc/igc_main.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c index 9b85fdf01297..3e301c5c5270 100644 --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c @@ -4402,6 +4402,7 @@ static irqreturn_t igc_msix_ring(int irq, void *data) */ static int igc_request_msix(struct igc_adapter *adapter) { + unsigned int num_q_vectors = adapter->num_q_vectors; int i = 0, err = 0, vector = 0, free_vector = 0; struct net_device *netdev = adapter->netdev; @@ -4410,7 +4411,13 @@ static int igc_request_msix(struct igc_adapter *adapter) if (err) goto err_out; - for (i = 0; i < adapter->num_q_vectors; i++) { + if (num_q_vectors > MAX_Q_VECTORS) { + num_q_vectors = MAX_Q_VECTORS; + dev_warn(&adapter->pdev->dev, + "The number of queue vectors (%d) is higher than max allowed (%d)\n", + adapter->num_q_vectors, MAX_Q_VECTORS); + } + for (i = 0; i < num_q_vectors; i++) { struct igc_q_vector *q_vector = adapter->q_vector[i]; vector++; -- 2.30.2