Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp1350076ybx; Thu, 31 Oct 2019 09:17:55 -0700 (PDT) X-Google-Smtp-Source: APXvYqwGesNQFtubEAphstKaVkfssbKVQsa2/QFIqRYTVK+KugrV0bTKlJMRYg8sM6zLGzyHVwbb X-Received: by 2002:a17:906:3388:: with SMTP id v8mr5005899eja.268.1572538675503; Thu, 31 Oct 2019 09:17:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572538675; cv=none; d=google.com; s=arc-20160816; b=Jyhysq57Qlhvbx9f3M5tWSAU5V8sQUCa3sE+K29fa9CAWznLbAdmz/ftRz3WfIinnl Lmqu012JDwVpWd1tBgGXynO/Hmv6gEkXbSWPLqcXe0zoJRqVYkb1+2hDvmE3BT68ee8A 7VS5kUyD6pxhYQr82kVvuEYqIr2XhidjK+WoytQgyhpACG2/55HhrFLiMkFH5rqwXOds i6pB52gKOI+M0z6qf2U94BnN6/oGUfe73DKeXLTMWp6he/794lOKF424i9JJpr1WG5NY 6JF7BTgD8j2ItoLJAuBwQkzYAz+LocjrUkOJrGvO0ppRl1BS1xdqlllaGX7ENGjgzncR Uu4Q== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=RqwYOiN2KGqpLlf/ZRc9wSeyek8W+EvrYA8vHyutvuA=; b=unNb1BczKL1DeO7bSbe8bf0zU1FtqpppfPoaIvSk79AOu+KCK8ay5Hbvw28d+EJCpP TTTUaZqty+R0Dh31FctVvI0B+9Lt6s3cq6Az8KFnpVcZ25YKS7hwbOnkMUavGx6eM35T 2OK47iVSkl6z/cjT5wB3ODot3qcPiYUptVbErqpQHII84Wb9DSmJnj+utiNGWN0E1nCT mPGOg9HqD91YRmIJjtrx/9H8ZqVgA8uaQM4SOrm+K3odMclE8FUCp0gJfQm3SlRltWxF vNcOAwy7N1flcwDR1uowt/l83oGjdiaxG4FMM4HGacgtLIgBuYL4Plk9PADv0TNKoTzr IkFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ATINM0Yf; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k43si4305412edb.150.2019.10.31.09.17.24; Thu, 31 Oct 2019 09:17:55 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ATINM0Yf; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728520AbfJaQOs (ORCPT + 99 others); Thu, 31 Oct 2019 12:14:48 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:52437 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726540AbfJaQOs (ORCPT ); Thu, 31 Oct 2019 12:14:48 -0400 Received: by mail-wm1-f67.google.com with SMTP id p21so6550755wmg.2 for ; Thu, 31 Oct 2019 09:14:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=RqwYOiN2KGqpLlf/ZRc9wSeyek8W+EvrYA8vHyutvuA=; b=ATINM0Yf2zbUcYuZGChFzCdl9tiVcNGTXnZN/FdQihGwfv1R1knVJerg3VwNNABN6s wT+Eiw0VzFALW2XPHrTIPuB2DbkxcEWDQvT3ZTtL9m3rGvRFhkcgxpJFn9/OfEiB3ml4 z7YMishQmuZ9e+0xW1ZHVE1BAmqq30yMfbABC/TyUghBKz5V5glA5yAjAefPdmoW4LP6 xI8qKAbzP6OrQO86hVLXlehsXfiz3fMV7lo0OWNF28/CYlzOrKEkGLSS9bPSX4u+JYbE 5Hqb82udeyhoWue7tcoBQCmVOEYFxNDici3SYZIlhmc/srMoCe9lK1mBFC9de2sbId7T SwsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=RqwYOiN2KGqpLlf/ZRc9wSeyek8W+EvrYA8vHyutvuA=; b=az6zzSLL5dC4JBvhXBdLsHzAdtn5l4mh8Nq7Iqt9mzbaqCoC8J4bxP6KM4z/+j65T+ SQjUhoazFCpLik4gYePm5187dNESnxF1mhwSPSSKeOpMP3urQl3Ju5r/Swnc9bO5szH2 /R8CWsvBMExQ93Shm/JIKoNdv+PatvdFx1mZnU+rJfh2buCfuW/CUD+HfPwvFRAcHgQh GOCsv8SHLZSoDu5XcGqYp1r7RtdEc2R5UGtGcivjhxoNWwncwNb4Lkguct66qt4T9oYe Klc4UqtLE2qbU/KiZX6E/kBKB1vrTRkJJYHxje6saTppsQ0vj9e6EifmgwXJ+rWSO2s/ Uh6w== X-Gm-Message-State: APjAAAWFyks3u6v3ttHfZzORWxD9HnEaAytK/HpGFhrJChcJQD1OWa3O eF0vk9hrQWb2E1sMkT6fSxe1TJsE X-Received: by 2002:a1c:1f03:: with SMTP id f3mr5900613wmf.131.1572538485096; Thu, 31 Oct 2019 09:14:45 -0700 (PDT) Received: from debian64.daheim (p200300D5FF0185FC6CD68BFF00000D54.dip0.t-ipconnect.de. [2003:d5:ff01:85fc:6cd6:8bff:0:d54]) by smtp.gmail.com with ESMTPSA id b1sm4440305wru.83.2019.10.31.09.14.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 31 Oct 2019 09:14:44 -0700 (PDT) Received: from chuck by debian64.daheim with local (Exim 4.92.3) (envelope-from ) id 1iQD5q-0001HG-7A; Thu, 31 Oct 2019 17:14:38 +0100 From: Christian Lamparter To: linux-crypto@vger.kernel.org Cc: Herbert Xu , "David S . Miller" Subject: [PATCH] crypto: crypto4xx - fix double-free in crypto4xx_destroy_sdr Date: Thu, 31 Oct 2019 17:14:38 +0100 Message-Id: <20191031161438.4806-1-chunkeey@gmail.com> X-Mailer: git-send-email 2.24.0.rc2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org This patch fixes a crash that can happen during probe when the available dma memory is not enough (this can happen if the crypto4xx is built as a module). The descriptor window mapping would end up being free'd twice, once in crypto4xx_build_pdr() and the second time in crypto4xx_destroy_sdr(). Fixes: 5d59ad6eea82 ("crypto: crypto4xx - fix crypto4xx_build_pdr, crypto4xx_build_sdr leak") Signed-off-by: Christian Lamparter --- drivers/crypto/amcc/crypto4xx_core.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/crypto/amcc/crypto4xx_core.c b/drivers/crypto/amcc/crypto4xx_core.c index de5e9352e920..7d6b695c4ab3 100644 --- a/drivers/crypto/amcc/crypto4xx_core.c +++ b/drivers/crypto/amcc/crypto4xx_core.c @@ -365,12 +365,8 @@ static u32 crypto4xx_build_sdr(struct crypto4xx_device *dev) dma_alloc_coherent(dev->core_dev->device, PPC4XX_SD_BUFFER_SIZE * PPC4XX_NUM_SD, &dev->scatter_buffer_pa, GFP_ATOMIC); - if (!dev->scatter_buffer_va) { - dma_free_coherent(dev->core_dev->device, - sizeof(struct ce_sd) * PPC4XX_NUM_SD, - dev->sdr, dev->sdr_pa); + if (!dev->scatter_buffer_va) return -ENOMEM; - } for (i = 0; i < PPC4XX_NUM_SD; i++) { dev->sdr[i].ptr = dev->scatter_buffer_pa + -- 2.24.0.rc2