On Fri, 2014-02-28 at 16:59 +0200, Dmitry Kasatkin wrote: > Memory allocation is unnecessary for empty files. > This patch finalize the hash without memory allocation. > > Signed-off-by: Dmitry Kasatkin <d.kasat...@samsung.com>
Thanks. Mimi > --- > security/integrity/ima/ima_crypto.c | 20 ++++++++++++-------- > 1 file changed, 12 insertions(+), 8 deletions(-) > > diff --git a/security/integrity/ima/ima_crypto.c > b/security/integrity/ima/ima_crypto.c > index d257e36..1bde8e6 100644 > --- a/security/integrity/ima/ima_crypto.c > +++ b/security/integrity/ima/ima_crypto.c > @@ -87,16 +87,20 @@ static int ima_calc_file_hash_tfm(struct file *file, > if (rc != 0) > return rc; > > - rbuf = kzalloc(PAGE_SIZE, GFP_KERNEL); > - if (!rbuf) { > - rc = -ENOMEM; > + i_size = i_size_read(file_inode(file)); > + > + if (i_size == 0) > goto out; > - } > + > + rbuf = kzalloc(PAGE_SIZE, GFP_KERNEL); > + if (!rbuf) > + return -ENOMEM; > + > if (!(file->f_mode & FMODE_READ)) { > file->f_mode |= FMODE_READ; > read = 1; > } > - i_size = i_size_read(file_inode(file)); > + > while (offset < i_size) { > int rbuf_len; > > @@ -113,12 +117,12 @@ static int ima_calc_file_hash_tfm(struct file *file, > if (rc) > break; > } > - kfree(rbuf); > - if (!rc) > - rc = crypto_shash_final(&desc.shash, hash->digest); > if (read) > file->f_mode &= ~FMODE_READ; > + kfree(rbuf); > out: > + if (!rc) > + rc = crypto_shash_final(&desc.shash, hash->digest); > return rc; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/