From patchwork Thu Nov 9 09:31:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 163316 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b129:0:b0:403:3b70:6f57 with SMTP id q9csp318443vqs; Thu, 9 Nov 2023 01:32:07 -0800 (PST) X-Google-Smtp-Source: AGHT+IHEgNvEom8Uq4NjAIZQKDq6uXcN2Vv+IuiPTrZ8kj10KeHJGl+hJme1aNxteKol6kOG0OHV X-Received: by 2002:a05:6870:d87:b0:1e9:c59b:a9ad with SMTP id mj7-20020a0568700d8700b001e9c59ba9admr4677128oab.52.1699522327352; Thu, 09 Nov 2023 01:32:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699522327; cv=none; d=google.com; s=arc-20160816; b=wPO1E2CedpjpZDflXoytMrNef3OlgUlzzTL20B9CFBDni8fW+Ncn12FJaJn0bS6NPx aro2P8tj34MyiGOpp0dFw96n9LWEiHgTCP3PyZ4yzflo6X40A1PTnDaJ1uClQThCHL18 BvITMXoE8htXoLSwrZ54khVmICm42682X3JLyKvmntnSiW8TvsSlOgfavODpUqZ8G1on TYSkHrRCkmeEVuSx+nGYScNXmkQqHGAKiyKUT6JTcyGoLCGb5G2VK0wpJU245//F18E+ j5XLEfVYjA52vA02BHoYLcu/cnpW7Mq+AYWaly1v5GBVIneBb3G22R8Tbl/koKszZdji 4pSA== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=/8Neo2VdhityCiQ14cc1o1K00HIKJAfO+N7zEX8enTY=; fh=rYKbrjwSW142uzc4GYU2hQVe859lIRaglfvpdKIvsRo=; b=zFCvlq3Gl+CFSfIqv/N4gv0Zrc/nqe/di08KK00fnXVAlf+rjzE9/bQXRLYKIMOjbB 5LFDNbb3D1If3obj5qLUoNNOODzsM9O3GSqKuCZeYXi5Cuc1OtxZjDo1rTEvWoZBNrQR p5tI7LxBJyi0ps2A7XAgLvWAmt7w6qE946QiDPc9EOyPwSS3QUaXr469YPhpzGOhpQ8W 2I30iAXig51950+blzAMYQ2jLfZNa8MCwxl2lfeprUsMM3PRzISqKk4WdUW4n/T4Fsp8 jkVdn3hQQq53FjFSOiEbnIt0KwkLFWM9fNCbNhbRTBfkXcdWGeyh24HlcYrP/+kDgO/2 EU/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=GisZhfwZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id y11-20020a056a00190b00b006bebc50b5c0si15453739pfi.46.2023.11.09.01.32.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Nov 2023 01:32:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=GisZhfwZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 2F0E681A43DD; Thu, 9 Nov 2023 01:31:22 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232537AbjKIJbG (ORCPT + 32 others); Thu, 9 Nov 2023 04:31:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231826AbjKIJbD (ORCPT ); Thu, 9 Nov 2023 04:31:03 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 48D092D44; Thu, 9 Nov 2023 01:30:58 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DDDABC433C8; Thu, 9 Nov 2023 09:30:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1699522257; bh=PZQMPnYlGnEWT673t/5m3TU6f1iHCeG8oTv/I5ehW6E=; h=From:To:Cc:Subject:Date:From; b=GisZhfwZ84diDIDf2mIw/gX/FvfZ8/audX+9nlBrRhzVfNzmDtcOqvnUBTEuRM+j1 WOREsxZdXozH9LmIYVGU9PekDEJgyKuD+e1HgAA+HiOxxBcbRC0k1OleQeBVe+Q4Bw 7nqzTA1P6Lw17xkWMGbgPG8HIBq2vsdGBDIKjPv6KGrZ8cFRfvHdKFmrVyAgXOG6Pc skpnCj4ersGD6W7EDfezauoeHQeK4v24oUKayIjJMLOTbpJ4dcJLELRNiVJY0P3nE+ jbM0tjOJ+e4zEoIUrg9pLqhjiZnWnCJ3hjiq8D3h4TU3Ngj9pDV/7sgmC9QT1Vnvx8 34v1C4stiuB5Q== Received: from johan by xi.lan with local (Exim 4.96) (envelope-from ) id 1r11OB-0005CW-1Q; Thu, 09 Nov 2023 10:31:51 +0100 From: Johan Hovold To: Bjorn Andersson Cc: Andy Gross , Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH] soc: qcom: pmic_glink_altmode: fix port sanity check Date: Thu, 9 Nov 2023 10:31:00 +0100 Message-ID: <20231109093100.19971-1-johan+linaro@kernel.org> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 09 Nov 2023 01:31:22 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782078324029391795 X-GMAIL-MSGID: 1782078324029391795 The PMIC GLINK altmode driver currently supports at most two ports. Fix the incomplete port sanity check on notifications to avoid accessing and corrupting memory beyond the port array if we ever get a notification for an unsupported port. Fixes: 080b4e24852b ("soc: qcom: pmic_glink: Introduce altmode support") Cc: stable@vger.kernel.org # 6.3 Signed-off-by: Johan Hovold Reviewed-by: Konrad Dybcio Reviewed-by: Dmitry Baryshkov --- drivers/soc/qcom/pmic_glink_altmode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/soc/qcom/pmic_glink_altmode.c b/drivers/soc/qcom/pmic_glink_altmode.c index 974c14d1e0bf..561d6ba005f4 100644 --- a/drivers/soc/qcom/pmic_glink_altmode.c +++ b/drivers/soc/qcom/pmic_glink_altmode.c @@ -285,7 +285,7 @@ static void pmic_glink_altmode_sc8180xp_notify(struct pmic_glink_altmode *altmod svid = mux == 2 ? USB_TYPEC_DP_SID : 0; - if (!altmode->ports[port].altmode) { + if (port >= ARRAY_SIZE(altmode->ports) || !altmode->ports[port].altmode) { dev_dbg(altmode->dev, "notification on undefined port %d\n", port); return; } @@ -328,7 +328,7 @@ static void pmic_glink_altmode_sc8280xp_notify(struct pmic_glink_altmode *altmod hpd_state = FIELD_GET(SC8280XP_HPD_STATE_MASK, notify->payload[8]); hpd_irq = FIELD_GET(SC8280XP_HPD_IRQ_MASK, notify->payload[8]); - if (!altmode->ports[port].altmode) { + if (port >= ARRAY_SIZE(altmode->ports) || !altmode->ports[port].altmode) { dev_dbg(altmode->dev, "notification on undefined port %d\n", port); return; }