mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-24 19:40:21 +09:00
ima: fix error handling logic when file measurement failed
commit6dc387d52eupstream. 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:54f03916fb("ima: permit fsverity's file digests in the IMA measurement list") Cc: stable@vger.kernel.org # 5.19 Signed-off-by: Matt Bobrowski <mattbobrowski@google.com> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1beb41094b
commit
7327b30a00
@@ -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;
|
||||
|
||||
@@ -335,7 +335,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 */
|
||||
|
||||
Reference in New Issue
Block a user