ima: Don't ignore errors from crypto_shash_update()

Errors returned by crypto_shash_update() are not checked in
ima_calc_boot_aggregate_tfm() and thus can be overwritten at the next
iteration of the loop. This patch adds a check after calling
crypto_shash_update() and returns immediately if the result is not zero.

Cc: stable@vger.kernel.org
Fixes: 3323eec921 ("integrity: IMA as an integrity service provider")
Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
This commit is contained in:
Roberto Sassu 2020-09-04 11:23:28 +02:00 committed by Mimi Zohar
parent f60c826d03
commit 60386b8540

View File

@ -829,6 +829,8 @@ static int ima_calc_boot_aggregate_tfm(char *digest, u16 alg_id,
/* now accumulate with current aggregate */ /* now accumulate with current aggregate */
rc = crypto_shash_update(shash, d.digest, rc = crypto_shash_update(shash, d.digest,
crypto_shash_digestsize(tfm)); crypto_shash_digestsize(tfm));
if (rc != 0)
return rc;
} }
/* /*
* Extend cumulative digest over TPM registers 8-9, which contain * Extend cumulative digest over TPM registers 8-9, which contain