On Thu, 2018-10-04 at 15:28 -0700, Eric Biggers wrote: > On Thu, Oct 04, 2018 at 06:21:35PM -0400, Mimi Zohar wrote: > > On Wed, 2018-10-03 at 17:01 -0700, Eric Biggers wrote: > > > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > > > > > The 12 character temporary buffer is not necessarily long enough to hold > > > a 'long' value. Increase it. > > > > > > Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx> > > > --- > > > 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 */ This comment is useless. > > > + char tmpbuf[32]; char tmpbuf[32]; /* string size needed for largest long value */ > > > > 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? > > There's no real cost to overestimating slightly here, and it's better than > trying to count exactly and getting it wrong (hint: it's actually more than 20 > characters). Please explain how it is more than 20 characters. Mimi