1
0
mirror of https://git.code.sf.net/p/linux-ima/ima-evm-utils synced 2025-04-27 06:12:32 +02:00

Don't ignore number of items read

fread() either returns the number of bytes read or the number of items
of data read.  Check that it returns the requested number of items read.

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
This commit is contained in:
Mimi Zohar 2022-09-13 10:17:57 -04:00
parent c8b1757270
commit 6778e3511b

View File

@ -2161,7 +2161,7 @@ static int ima_measurement(const char *file)
}
memset(entry.name, 0x00, sizeof(entry.name));
if (!fread(entry.name, entry.header.name_len, 1, fp)) {
if (fread(entry.name, entry.header.name_len, 1, fp) != 1) {
log_err("Unable to read template name\n");
goto out;
}
@ -2184,8 +2184,8 @@ static int ima_measurement(const char *file)
/* The "ima" template data is not length prefixed. Skip it. */
if (!is_ima_template) {
if (!fread(&entry.template_len,
sizeof(entry.template_len), 1, fp)) {
if (fread(&entry.template_len,
sizeof(entry.template_len), 1, fp) != 1) {
log_err("Unable to read template length\n");
goto out;
}
@ -2205,7 +2205,8 @@ static int ima_measurement(const char *file)
}
if (!is_ima_template) {
if (!fread(entry.template, entry.template_len, 1, fp)) {
if (fread(entry.template, entry.template_len,
1, fp) != 1) {
log_errno("Unable to read template\n");
goto out;
}
@ -2217,7 +2218,8 @@ static int ima_measurement(const char *file)
* The "ima" template data format is digest,
* filename length, filename.
*/
if (!fread(entry.template, SHA_DIGEST_LENGTH, 1, fp)) {
if (fread(entry.template, SHA_DIGEST_LENGTH,
1, fp) != 1) {
log_errno("Unable to read file data hash\n");
goto out;
}