Fix resource leak
Signed-off-by: Zbigniew Jasinski <z.jasinski@samsung.com>
This commit is contained in:
parent
dddef9172e
commit
c5a2992bc8
20
src/evmctl.c
20
src/evmctl.c
@ -1495,7 +1495,7 @@ static int ima_measurement(const char *file)
|
||||
uint8_t pcr10[SHA_DIGEST_LENGTH];
|
||||
struct template_entry entry = { .template = 0 };
|
||||
FILE *fp;
|
||||
int err;
|
||||
int err = -1;
|
||||
|
||||
memset(fox, 0xff, SHA_DIGEST_LENGTH);
|
||||
|
||||
@ -1508,19 +1508,19 @@ static int ima_measurement(const char *file)
|
||||
return -1;
|
||||
}
|
||||
|
||||
while ((err = fread(&entry.header, sizeof(entry.header), 1, fp))) {
|
||||
while (fread(&entry.header, sizeof(entry.header), 1, fp)) {
|
||||
ima_extend_pcr(pcr, entry.header.digest, SHA_DIGEST_LENGTH);
|
||||
|
||||
if (!fread(entry.name, entry.header.name_len, 1, fp)) {
|
||||
log_err("Unable to read template name\n");
|
||||
return -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
entry.name[entry.header.name_len] = '\0';
|
||||
|
||||
if (!fread(&entry.template_len, sizeof(entry.template_len), 1, fp)) {
|
||||
log_err("Unable to read template length\n");
|
||||
return -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (entry.template_buf_len < entry.template_len) {
|
||||
@ -1531,7 +1531,7 @@ static int ima_measurement(const char *file)
|
||||
|
||||
if (!fread(entry.template, entry.template_len, 1, fp)) {
|
||||
log_err("Unable to read template\n");
|
||||
return -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (validate)
|
||||
@ -1543,8 +1543,6 @@ static int ima_measurement(const char *file)
|
||||
ima_ng_show(&entry);
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
tpm_pcr_read(10, pcr10, sizeof(pcr10));
|
||||
|
||||
log_info("PCRAgg: ");
|
||||
@ -1555,10 +1553,14 @@ static int ima_measurement(const char *file)
|
||||
|
||||
if (memcmp(pcr, pcr10, sizeof(pcr))) {
|
||||
log_err("PCRAgg does not match PCR-10\n");
|
||||
return -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
return 0;
|
||||
err = 0;
|
||||
out:
|
||||
fclose(fp);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static int cmd_ima_measurement(struct command *cmd)
|
||||
|
Loading…
x
Reference in New Issue
Block a user