Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp1541735ybc; Tue, 12 Nov 2019 23:56:01 -0800 (PST) X-Google-Smtp-Source: APXvYqz56OTKRuUjR/Kvw31IvmPfPaJZNAbTssSEZnncwWSBx4Hm33UbDlJN70sFpbLNaSXSazpQ X-Received: by 2002:a17:906:1342:: with SMTP id x2mr1467422ejb.304.1573631761223; Tue, 12 Nov 2019 23:56:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573631761; cv=none; d=google.com; s=arc-20160816; b=id4rpH0rMpfxmiVww8iFlsiRfQ9lzHurGylviu7jxl8ve0rRN4RAIvwqURIYoZNSWQ ZJmbsGS3FUdsE7Yvdgwor0uxQEgV3GA4LVKv5zKQAnLO590uoLcBvrHNq6zRK9jpYB5Q Thu+bslxdUU3yNSlF+GtD7IXpkfNTVoeM8LitBBvgadPWqinMELigXWYRO8MsBbZk63k 4NQGsEUs4Obn+QUBRbpS06mw8liJu5gDkFC6h1DQdG1OggUPQwB3txUSMosWefypF0ko aXlaT+I5Kzvo1lB4cTYtiad3KICHn83+0wr/154W3ZCT1KyhtW8fjCK5dVo5Df1J508u qgbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=uujkeG9jZJTMh018KqTV10MCTsFuV3l998eRcpZl5r0=; b=BMJZ4F9/QKQAku+Q1dw0qn8eLrC5nizFUJv6+/ykZtPeTdMMxK22aRf126TWwxxfGR DYJpNaqOWoKk19XnFHOt+7alDA8H8Gx+9XPNjPYo+PiKoiCj/NG0CwPO2u8GtJTuzKlN W52LNCuv7VTSzailc2H6tJdxmMmpmYR1IF1SKOShYz0fbKh6o1GjwdfUIBqTqGG0BUuo rhKjMiyuPxlcnku2qcc+uEB2uG8SIMif1tcMD5+UpzEYuSnJkEg5Uqj/QEWqebDBbd60 2ZyrFielD0vVC99b6vxyd3a34FBmQqbx11hEHUiw3L2+0uuiOnrbm+O2OWdkkS99vpvR 8okg== 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 f6si810361edl.442.2019.11.12.23.55.36; Tue, 12 Nov 2019 23:56:01 -0800 (PST) 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 S1726338AbfKMHwj (ORCPT + 99 others); Wed, 13 Nov 2019 02:52:39 -0500 Received: from metis.ext.pengutronix.de ([85.220.165.71]:35637 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726074AbfKMHwj (ORCPT ); Wed, 13 Nov 2019 02:52:39 -0500 Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1iUnSA-0000Cf-8X; Wed, 13 Nov 2019 08:52:38 +0100 Received: from sha by ptx.hi.pengutronix.de with local (Exim 4.89) (envelope-from ) id 1iUnS9-0000KE-Ma; Wed, 13 Nov 2019 08:52:37 +0100 Date: Wed, 13 Nov 2019 08:52:37 +0100 From: Sascha Hauer To: Patrick Callaghan Cc: linux-integrity@vger.kernel.org, linux-kernel@vger.kernel.org, Mimi Zohar Subject: Re: [PATCH] ima: avoid appraise error for hash calc interrupt Message-ID: <20191113075237.falq46vnmbtd5pa7@pengutronix.de> References: <20191111192348.30535-1-patrickc@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191111192348.30535-1-patrickc@linux.ibm.com> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-IRC: #ptxdist @freenode X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-Uptime: 08:48:41 up 128 days, 13:58, 130 users, load average: 0.01, 0.08, 0.09 User-Agent: NeoMutt/20170113 (1.7.2) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: sha@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 11, 2019 at 02:23:48PM -0500, Patrick Callaghan wrote: > The integrity_kernel_read() call in ima_calc_file_hash_tfm() can return > a value of 0 before all bytes of the file are read. A value of 0 would > normally indicate an EOF. This has been observed if a user process is > causing a file appraisal and is terminated with a SIGTERM signal. The > most common occurrence of seeing the problem is if a shutdown or systemd > reload is initiated while files are being appraised. > > The problem is similar to commit (ima: always return > negative code for error) that fixed the problem in > ima_calc_file_hash_atfm(). > > Suggested-by: Mimi Zohar > Signed-off-by: Patrick Callaghan > --- > security/integrity/ima/ima_crypto.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/security/integrity/ima/ima_crypto.c b/security/integrity/ima/ima_crypto.c > index 73044fc..7967a69 100644 > --- a/security/integrity/ima/ima_crypto.c > +++ b/security/integrity/ima/ima_crypto.c > @@ -362,8 +362,10 @@ static int ima_calc_file_hash_tfm(struct file *file, > rc = rbuf_len; > break; > } > - if (rbuf_len == 0) > + if (rbuf_len == 0) { /* unexpected EOF */ > + rc = -EINVAL; > break; > + } There's no point in calling crypto_shash_final() on incomplete data, so setting rc to an error to avoid that seems the right thing to do to me, so: Reviewed-by: Sascha Hauer Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |