Fix memory leak in tpm_binary_bios_measurements_open()

The same problem that was fixed for tpm_ascii_bios_measurements_open()
in commit 178554ae75 also occurs in
tpm_binary_bios measurements().  Thanks for noticing this Satyam!

I tested the attached patch to fix tpm_binary_bios_measurments as well.

Signed-off-by: Reiner Sailer <sailer@watson.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Reiner Sailer 2007-07-20 10:03:02 -04:00 committed by Linus Torvalds
parent c1158e63df
commit 03ce11048b

View file

@ -465,7 +465,7 @@ static int tpm_binary_bios_measurements_open(struct inode *inode,
return -ENOMEM; return -ENOMEM;
if ((err = read_log(log))) if ((err = read_log(log)))
return err; goto out_free;
/* now register seq file */ /* now register seq file */
err = seq_open(file, &tpm_binary_b_measurments_seqops); err = seq_open(file, &tpm_binary_b_measurments_seqops);
@ -473,10 +473,15 @@ static int tpm_binary_bios_measurements_open(struct inode *inode,
seq = file->private_data; seq = file->private_data;
seq->private = log; seq->private = log;
} else { } else {
kfree(log->bios_event_log); goto out_free;
kfree(log);
} }
out:
return err; return err;
out_free:
kfree(log->bios_event_log);
kfree(log);
goto out;
} }
const struct file_operations tpm_binary_bios_measurements_ops = { const struct file_operations tpm_binary_bios_measurements_ops = {