mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-15 18:04:36 +00:00
Fix memory leak in tpm_binary_bios_measurements_open()
The same problem that was fixed for tpm_ascii_bios_measurements_open() in commit 178554ae75739e91dc4d7c3e42a3db95448cc5bf 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:
parent
c1158e63df
commit
03ce11048b
@ -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 = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user