Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp3116175pxm; Mon, 28 Feb 2022 12:21:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJyz67+NIm7RRyU4vEMfpNYR6/OHSrYUampFUhmEB7DVET7oE7ZZc6DyoIT/WuAYDAvKdIVH X-Received: by 2002:a17:902:8c86:b0:151:8226:e93b with SMTP id t6-20020a1709028c8600b001518226e93bmr134546plo.128.1646079692002; Mon, 28 Feb 2022 12:21:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646079691; cv=none; d=google.com; s=arc-20160816; b=IBfdBRp0cwUEprFLuqZc6B+8tuTtyJcpa6Vkm7htG3hFOZ9pLAA83fGiO62MUUD9rN sp+0L7+69h5BIz9DRg0IrbkUnMlHwh5MZLt40VND76/hb4bqdkAiuRXGzH0ozjRQdJo7 NRwMFK2zNUSASsCejt65WL/Z6R0YLag5UogXurGXHN0YBSIlT00CX7u27WBMIRrwFaM3 uQWe+2DB00/cN0jkHjGCNn8M2vbviO+OiWah9qCw9y9Qj9kbbxAW9TB3t2324eMShEbk PgJxymUi3KvnDVIGeRzbP9bRKQDOIzF/7RRG+6KXw+ufzivuNUDd52tYK46RwSzDWKxn gVsQ== 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=7J/esr1jKodJODJVjmXbWOshyEMuVaHqW0bnp9IrIUQ=; b=j0caOmTxcLQhvW+b21LRcRbhOINiHWlXJmtayB0DFgovPvXmLR/5qv4ZLEdRj4rMY4 dKUmUmUjEkOc/y0qUY2MOhwCYqscnqayQSGbhPuQu7C/cHHpcxUWWSCnBINLc1fm2vaD HWCO+vjFQOqBNFqs0+LLOfbduCHtacIDAOA/MJtfbOmC03nCYx6NYUdgPVNtroyTav11 EpmhP5ePf4dOX+0c96tINHq/b+8UNKJVVoyh+AHNtxPg8W4/LgYY0xjq4SlBg/iq9c+O ln4cL+wDzhha4zrjVOeZOm9GLENS7lWVRzbXE4ODGpwH7YjBXM8daVcGFhzR5JVe62vF sr5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=VRWo9zWD; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id h9-20020a170902f54900b0014f73fa2b12si11255093plf.525.2022.02.28.12.21.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Feb 2022 12:21:31 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=VRWo9zWD; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5009FEA764; Mon, 28 Feb 2022 11:41:58 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236810AbiB1Rls (ORCPT + 99 others); Mon, 28 Feb 2022 12:41:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238404AbiB1Rhv (ORCPT ); Mon, 28 Feb 2022 12:37:51 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D3DDDDECA; Mon, 28 Feb 2022 09:32:30 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 522676140B; Mon, 28 Feb 2022 17:32:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 343A7C340E7; Mon, 28 Feb 2022 17:32:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1646069533; bh=kUMCLelcyBnmGSrfhG9kHSouDJ5eCfOYfQauTCi5Qkk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VRWo9zWDBYLBhWRwi6ZeuTtA72DqwzBkbcMQZUtyV8nd+V1DsY6Pa3SPy3fMvYmAT i+BBwbDfIYg5v2bSPQKE467tctDLkU2Cs5lTO5gde/qGhbx/3TxyAX777Ha6kPBmq2 4nStUwCtwry9zXAXKzKyJ6/5tfuLsWAXji9nMZlY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Zhou Qingyang , Mark Brown , Sasha Levin Subject: [PATCH 5.4 29/53] spi: spi-zynq-qspi: Fix a NULL pointer dereference in zynq_qspi_exec_mem_op() Date: Mon, 28 Feb 2022 18:24:27 +0100 Message-Id: <20220228172250.404297965@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220228172248.232273337@linuxfoundation.org> References: <20220228172248.232273337@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Zhou Qingyang [ Upstream commit ab3824427b848da10e9fe2727f035bbeecae6ff4 ] In zynq_qspi_exec_mem_op(), kzalloc() is directly used in memset(), which could lead to a NULL pointer dereference on failure of kzalloc(). Fix this bug by adding a check of tmpbuf. This bug was found by a static analyzer. The analysis employs differential checking to identify inconsistent security operations (e.g., checks or kfrees) between two code paths and confirms that the inconsistent operations are not recovered in the current function or the callers, so they constitute bugs. Note that, as a bug found by static analysis, it can be a false positive or hard to trigger. Multiple researchers have cross-reviewed the bug. Builds with CONFIG_SPI_ZYNQ_QSPI=m show no new warnings, and our static analyzer no longer warns about this code. Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller") Signed-off-by: Zhou Qingyang Link: https://lore.kernel.org/r/20211130172253.203700-1-zhou1615@umn.edu Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- drivers/spi/spi-zynq-qspi.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/spi/spi-zynq-qspi.c b/drivers/spi/spi-zynq-qspi.c index 1ced6eb8b3303..b3588240eb39b 100644 --- a/drivers/spi/spi-zynq-qspi.c +++ b/drivers/spi/spi-zynq-qspi.c @@ -558,6 +558,9 @@ static int zynq_qspi_exec_mem_op(struct spi_mem *mem, if (op->dummy.nbytes) { tmpbuf = kzalloc(op->dummy.nbytes, GFP_KERNEL); + if (!tmpbuf) + return -ENOMEM; + memset(tmpbuf, 0xff, op->dummy.nbytes); reinit_completion(&xqspi->data_completion); xqspi->txbuf = tmpbuf; -- 2.34.1