From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:43218 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725996AbeJEFRN (ORCPT ); Fri, 5 Oct 2018 01:17:13 -0400 Received: from pps.filterd (m0098394.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w94ME8R6022178 for ; Thu, 4 Oct 2018 18:21:43 -0400 Received: from e06smtp02.uk.ibm.com (e06smtp02.uk.ibm.com [195.75.94.98]) by mx0a-001b2d01.pphosted.com with ESMTP id 2mwrs9ged3-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 04 Oct 2018 18:21:43 -0400 Received: from localhost by e06smtp02.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 4 Oct 2018 23:21:41 +0100 Subject: Re: [PATCH v2] ima: fix showing large 'violations' or 'runtime_measurements_count' From: Mimi Zohar To: Eric Biggers , linux-integrity@vger.kernel.org, Mimi Zohar , Dmitry Kasatkin Date: Thu, 04 Oct 2018 18:21:35 -0400 In-Reply-To: <20181004000106.153693-1-ebiggers@kernel.org> References: <20181004000106.153693-1-ebiggers@kernel.org> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Message-Id: <1538691695.3702.361.camel@linux.ibm.com> Sender: linux-integrity-owner@vger.kernel.org List-ID: On Wed, 2018-10-03 at 17:01 -0700, Eric Biggers wrote: > From: Eric Biggers > > The 12 character temporary buffer is not necessarily long enough to hold > a 'long' value. Increase it. > > Signed-off-by: Eric Biggers > --- > security/integrity/ima/ima_fs.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c > index ae9d5c766a3ce..4b50fe9c18edd 100644 > --- a/security/integrity/ima/ima_fs.c > +++ b/security/integrity/ima/ima_fs.c > @@ -42,14 +42,15 @@ static int __init default_canonical_fmt_setup(char *str) > __setup("ima_canonical_fmt", default_canonical_fmt_setup); > > static int valid_policy = 1; > -#define TMPBUFLEN 12 > + > static ssize_t ima_show_htable_value(char __user *buf, size_t count, > loff_t *ppos, atomic_long_t *val) > { > - char tmpbuf[TMPBUFLEN]; > + /* temporary buffer that is plenty long enough */ > + char tmpbuf[32]; If the maximum value of long is 9,223,372,036,854,775,807, the largest string needed to represent this value is 20 characters. Should 32 be hardcoded like this? Mimi > ssize_t len; > > - len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read(val)); > + len = scnprintf(tmpbuf, sizeof(tmpbuf), "%li\n", atomic_long_read(val)); > return simple_read_from_buffer(buf, count, ppos, tmpbuf, len); > } >