From 6778e3511ba4cea4a4335525d7a1903d132833b5 Mon Sep 17 00:00:00 2001 From: Mimi Zohar Date: Tue, 13 Sep 2022 10:17:57 -0400 Subject: [PATCH] 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 Signed-off-by: Mimi Zohar --- src/evmctl.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/evmctl.c b/src/evmctl.c index e8e7b6d..33d9088 100644 --- a/src/evmctl.c +++ b/src/evmctl.c @@ -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; }