History

platform/x86/amd/pmf: Fix memory leak in amd_pmf_get_pb_data()

amd_pmf_get_pb_data() will allocate memory for the policy buffer, but does not free it if copy_from_user() fails. This leads to a memory leak.

Cong Liu committed 2 years ago

Commit a692a861 parent cedecdb1 file · +3 −1Browse files

Unified · Split

drivers/platform/x86/amd/pmf/tee-if.c+3−1
@@ -298,8 +298,10 @@ static ssize_t amd_pmf_get_pb_data(struct file *filp, const char __user *buf, · 297 unmodified lines
298298 if (!new_policy_buf)
299299 return -ENOMEM;
300300
301− if (copy_from_user(new_policy_buf, buf, length))
301+ if (copy_from_user(new_policy_buf, buf, length)) {
302+ kfree(new_policy_buf);
302303 return -EFAULT;
304+ }
303305
304306 kfree(dev->policy_buf);
305307 dev->policy_buf = new_policy_buf;