Memory leak in tpm_ascii_bios_measurements_open()
Coverity found a memory leak in tpm_ascii_bios_measurements_open(). If "read_log(log)" fails, then we may leak 'log' and 'log->bios_event_log'. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Cc: Seiji Munetoh <munetoh@jp.ibm.com> Cc: Stefan Berger <stefanb@us.ibm.com> Cc: Reiner Sailer <sailer@watson.ibm.com> Cc: Kylene Hall <kjhall@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
22982a5687
commit
178554ae75
1 changed files with 8 additions and 3 deletions
|
@ -427,7 +427,7 @@ static int tpm_ascii_bios_measurements_open(struct inode *inode,
|
|||
return -ENOMEM;
|
||||
|
||||
if ((err = read_log(log)))
|
||||
return err;
|
||||
goto out_free;
|
||||
|
||||
/* now register seq file */
|
||||
err = seq_open(file, &tpm_ascii_b_measurments_seqops);
|
||||
|
@ -435,10 +435,15 @@ static int tpm_ascii_bios_measurements_open(struct inode *inode,
|
|||
seq = file->private_data;
|
||||
seq->private = log;
|
||||
} else {
|
||||
kfree(log->bios_event_log);
|
||||
kfree(log);
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
out:
|
||||
return err;
|
||||
out_free:
|
||||
kfree(log->bios_event_log);
|
||||
kfree(log);
|
||||
goto out;
|
||||
}
|
||||
|
||||
const struct file_operations tpm_ascii_bios_measurements_ops = {
|
||||
|
|
Loading…
Reference in a new issue