Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d91ac62 authored by Dmitry Kasatkin's avatar Dmitry Kasatkin Committed by Mimi Zohar
Browse files

ima: skip memory allocation for empty files



Memory allocation is unnecessary for empty files.
This patch calculates the hash without memory allocation.

Signed-off-by: default avatarDmitry Kasatkin <d.kasatkin@samsung.com>
Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
parent e0420039
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -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;
}