From patchwork Thu May 18 10:47:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gilad Ben-Yossef X-Patchwork-Id: 100083 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp654308qge; Thu, 18 May 2017 03:47:54 -0700 (PDT) X-Received: by 10.98.61.207 with SMTP id x76mr3693645pfj.170.1495104474400; Thu, 18 May 2017 03:47:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1495104474; cv=none; d=google.com; s=arc-20160816; b=UDCjZLciG9w1eLTrx/E2pALHZ2srBog4/8K0QwxJqGgsHKxHt/VsJ5qrZlt1Jlxa8H ufjkFNEYtpDHiTEl8mCZVmVnW3LPDICM5PPIaCoxT+pqOwB990dtuiMJlVKzb0lYuJC6 Zu+ttxMRFLcFv/MvPKWrxB+4YHYDs3qetqYFpukcqZIlU6H7ylez6XyQePTtyXqEAl8A 7biLSL654Uqk+kQNOCHViPbGvGAvw+wVc2id3OctsiGsuHkzPQaNLi7dEY3o3U2JJeOw RfoCwITWMjuHnr3HFNgTgy8HMCQ8PMhPO+auBCLKIaf+skX260pYzBUqam/Ft5QMsXqQ QxXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=29mFcEN7MJN/H4tsB6RRjDNkUfVgNm14pFuy7KBmJBQ=; b=LZ6oDrjW3PpvSlnbsIFpeelmkgsTIeTCqEzalsGSTad8BnuSYB4c/wZA8UXE3F8s8c F8sZQTBYBXYia4FD17rEITfttYOMOFhc17OhymviVFSEOEpoRWC9CqTDFTzDiq/+Qnpc OHEoXze4UblpLcvC0AgPGURwCHLwQMhw4Ni3cwzw+/G4B9yMqs+GU83aryY35K9R3VL4 QnvM+GnxVeCZIeLDKZGxQlAR25bL2qhPsdWYer0rmsGx/XD6cPH/u3Ki+8ZlIhVl/JPL 6hniM6qttt+dWaZSW1f0FtUH+79vfm4dAIByN2eLC9g0aGcxdj7GFofCKNf64GBNMnAq UxAg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s22si4836087pfg.292.2017.05.18.03.47.54; Thu, 18 May 2017 03:47:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755568AbdERKrf (ORCPT + 25 others); Thu, 18 May 2017 06:47:35 -0400 Received: from foss.arm.com ([217.140.101.70]:57810 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754626AbdERKrd (ORCPT ); Thu, 18 May 2017 06:47:33 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4C2F880D; Thu, 18 May 2017 03:47:33 -0700 (PDT) Received: from gby.emea.arm.com (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C14B93F23B; Thu, 18 May 2017 03:47:31 -0700 (PDT) From: Gilad Ben-Yossef To: Alasdair Kergon , Mike Snitzer , dm-devel@redhat.com, Shaohua Li Cc: Marian Csontos , Milan Broz , linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] dm verity: fix no salt used use case Date: Thu, 18 May 2017 13:47:25 +0300 Message-Id: <1495104445-29753-1-git-send-email-gilad@benyossef.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DM-Verity has an (undocumented) mode where no salt is used. This was never handled directly by the DM-Verity code, instead working due to the fact that calling crypto_shash_update() with a zero length data is an implicit noop. This is no longer the case now that we have switched to crypto_ahash_update(). Fix the issue by introducing an explicit handling of the no salt use case to DM-Verity. Signed-off-by: Gilad Ben-Yossef Reported-by: Marian Csontos Fixes: d1ac3ff ("dm verity: switch to using asynchronous hash crypto API") CC: Milan Broz --- drivers/md/dm-verity-target.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.1.4 Tested-by: Milan Broz diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c index 97de961..1ec9b2c 100644 --- a/drivers/md/dm-verity-target.c +++ b/drivers/md/dm-verity-target.c @@ -166,7 +166,7 @@ static int verity_hash_init(struct dm_verity *v, struct ahash_request *req, return r; } - if (likely(v->version >= 1)) + if (likely(v->salt_size && (v->version >= 1))) r = verity_hash_update(v, req, v->salt, v->salt_size, res); return r; @@ -177,7 +177,7 @@ static int verity_hash_final(struct dm_verity *v, struct ahash_request *req, { int r; - if (unlikely(!v->version)) { + if (unlikely(v->salt_size && (!v->version))) { r = verity_hash_update(v, req, v->salt, v->salt_size, res); if (r < 0) {