ima: avoid appraise error for hash calc interrupt
The integrity_kernel_read() call in ima_calc_file_hash_tfm() can return a value of 0 before all bytes of the file are read. A value of 0 would normally indicate an EOF. This has been observed if a user process is causing a file appraisal and is terminated with a SIGTERM signal. The most common occurrence of seeing the problem is if a shutdown or systemd reload is initiated while files are being appraised. The problem is similar to commit <f5e1040196db> (ima: always return negative code for error) that fixed the problem in ima_calc_file_hash_atfm(). Suggested-by: Mimi Zohar <zohar@linux.ibm.com> Signed-off-by: Patrick Callaghan <patrickc@linux.ibm.com> Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
This commit is contained in:
parent
e42617b825
commit
96c9e1de99
|
@ -362,8 +362,10 @@ static int ima_calc_file_hash_tfm(struct file *file,
|
|||
rc = rbuf_len;
|
||||
break;
|
||||
}
|
||||
if (rbuf_len == 0)
|
||||
if (rbuf_len == 0) { /* unexpected EOF */
|
||||
rc = -EINVAL;
|
||||
break;
|
||||
}
|
||||
offset += rbuf_len;
|
||||
|
||||
rc = crypto_shash_update(shash, rbuf, rbuf_len);
|
||||
|
|
Loading…
Reference in New Issue