Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1761389ybz; Sat, 18 Apr 2020 07:58:16 -0700 (PDT) X-Google-Smtp-Source: APiQypI4Z9ZfJeWehxIT7wrd7xwjflEFr6Dt1jp2m/YqFXBRDIHwjBQjLLhgMYOxcAEyELSiqHMd X-Received: by 2002:a17:907:435d:: with SMTP id oc21mr8341124ejb.100.1587221896568; Sat, 18 Apr 2020 07:58:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587221896; cv=none; d=google.com; s=arc-20160816; b=KTaJUs23vS16WYP3YUg5zl8cU4fV+SFmHrAS63tFb+BcoZP/xr52JszFOLJcZIIdlw 8P3X2XZFuHpwHjvFBOJR8tADawgJib6bEKPBnmnwPm9+XCuxulAbWS6Fh06RGZTu3LzD 0MyDOr0BfbE7AAHRQofJmrialVDE/dHdm+ml82yjbJnHrYlykDEn5RQ5zIJUe+PwgTGO JE363u6Ya79BQuP7fUcvy66rbIdfK5ho26kQy20mf8gMjsYUIPXxRf+tcR4plhKEbyWy mcsLVUQjo/u+v59CVl5BJa3AKc05EBMf6AAlsJdusFc338g+BCwZ8YeHgoMDjPH+5ku/ 7eeg== 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 :dkim-signature; bh=dlKEQbcna6ZxiUua9H1qOwvo/9iVaSoHga/2H9uZMF4=; b=ei5iwAXghYbQaOJlV2T7kjw/t9mXS0PQL+pasTZBO24k7yDcuoVkLwBn4zEBLP1lNT S4ibetFHgo2z0A7LjNQHH5bWygrsPvlIV/2R3om3WOWJBgGazr67o8gucFYFQeVDlcqu VWiLai/41eTngSoHCPdbP56/kBKGZu7heME2RAn+hn0aH2cz1eG64ClP3wRi32sp6xlL Gc3PjSAXCFAiU8kEWCU9mRmNicWL5Px+Zs/8AoEWbHLNhd9idWxCLrOoc5gYJ9rJu1r5 Wre8NiM5gXw+KlUhVwdU34E877IZoF6DA3RlhMvlspaVsXY28DhtgOqT710FoL4a+KGH zXDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=rtaOxR1C; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dd5si790164edb.34.2020.04.18.07.57.54; Sat, 18 Apr 2020 07:58:16 -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=@kernel.org header.s=default header.b=rtaOxR1C; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728882AbgDRO4B (ORCPT + 99 others); Sat, 18 Apr 2020 10:56:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:49544 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726823AbgDROk6 (ORCPT ); Sat, 18 Apr 2020 10:40:58 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 168D622245; Sat, 18 Apr 2020 14:40:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587220857; bh=lkc0eqrv/NtbeoveeQDCwrHDxqsfFolHHHhsAt1a5gI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rtaOxR1CmJ2ulrpMyMzpijqh74EcD0YRyuuJI+1Sl7lH3E9HTpm7QaQIrxjtYFvAA tThXFvATSzp1x/DMJVS5g8cuTomzcRfwoSBisImtMpD0jmC28GP0kei2Zv5sSKta5h B81OEqDpR6HQITEkTm+2yUZOdy1XcWM3c3jNdrmg= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: James Smart , Dick Kennedy , "Martin K . Petersen" , Sasha Levin , linux-scsi@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 08/78] scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login Date: Sat, 18 Apr 2020 10:39:37 -0400 Message-Id: <20200418144047.9013-8-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200418144047.9013-1-sashal@kernel.org> References: <20200418144047.9013-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: James Smart [ Upstream commit 38503943c89f0bafd9e3742f63f872301d44cbea ] The following kasan bug was called out: BUG: KASAN: slab-out-of-bounds in lpfc_unreg_login+0x7c/0xc0 [lpfc] Read of size 2 at addr ffff889fc7c50a22 by task lpfc_worker_3/6676 ... Call Trace: dump_stack+0x96/0xe0 ? lpfc_unreg_login+0x7c/0xc0 [lpfc] print_address_description.constprop.6+0x1b/0x220 ? lpfc_unreg_login+0x7c/0xc0 [lpfc] ? lpfc_unreg_login+0x7c/0xc0 [lpfc] __kasan_report.cold.9+0x37/0x7c ? lpfc_unreg_login+0x7c/0xc0 [lpfc] kasan_report+0xe/0x20 lpfc_unreg_login+0x7c/0xc0 [lpfc] lpfc_sli_def_mbox_cmpl+0x334/0x430 [lpfc] ... When processing the completion of a "Reg Rpi" login mailbox command in lpfc_sli_def_mbox_cmpl, a call may be made to lpfc_unreg_login. The vpi is extracted from the completing mailbox context and passed as an input for the next. However, the vpi stored in the mailbox command context is an absolute vpi, which for SLI4 represents both base + offset. When used with a non-zero base component, (function id > 0) this results in an out-of-range access beyond the allocated phba->vpi_ids array. Fix by subtracting the function's base value to get an accurate vpi number. Link: https://lore.kernel.org/r/20200322181304.37655-2-jsmart2021@gmail.com Signed-off-by: James Smart Signed-off-by: Dick Kennedy Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/lpfc/lpfc_sli.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index e2cec1f6e659b..8836c5682c8d5 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c @@ -2480,6 +2480,8 @@ lpfc_sli_def_mbox_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) !pmb->u.mb.mbxStatus) { rpi = pmb->u.mb.un.varWords[0]; vpi = pmb->u.mb.un.varRegLogin.vpi; + if (phba->sli_rev == LPFC_SLI_REV4) + vpi -= phba->sli4_hba.max_cfg_param.vpi_base; lpfc_unreg_login(phba, vpi, rpi, pmb); pmb->vport = vport; pmb->mbox_cmpl = lpfc_sli_def_mbox_cmpl; -- 2.20.1