Commit 6dc387d5 authored by Matt Bobrowski's avatar Matt Bobrowski Committed by Mimi Zohar
Browse files

ima: fix error handling logic when file measurement failed



Restore the error handling logic so that when file measurement fails,
the respective iint entry is not left with the digest data being
populated with zeroes.

Fixes: 54f03916 ("ima: permit fsverity's file digests in the IMA measurement list")
Cc: stable@vger.kernel.org	# 5.19
Signed-off-by: default avatarMatt Bobrowski <mattbobrowski@google.com>
Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
parent 5dc4c995
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -292,7 +292,7 @@ int ima_collect_measurement(struct integrity_iint_cache *iint,
		result = ima_calc_file_hash(file, &hash.hdr);
	}

	if (result == -ENOMEM)
	if (result && result != -EBADF && result != -EINVAL)
		goto out;

	length = sizeof(hash.hdr) + hash.hdr.length;
+1 −1
Original line number Diff line number Diff line
@@ -337,7 +337,7 @@ static int process_measurement(struct file *file, const struct cred *cred,
	hash_algo = ima_get_hash_algo(xattr_value, xattr_len);

	rc = ima_collect_measurement(iint, file, buf, size, hash_algo, modsig);
	if (rc == -ENOMEM)
	if (rc != 0 && rc != -EBADF && rc != -EINVAL)
		goto out_locked;

	if (!pathbuf)	/* ima_rdwr_violation possibly pre-fetched */