From: Mario Limonciello Date: Wed, 23 Apr 2025 13:18:44 +0000 (-0500) Subject: drivers/platform/x86/amd: pmf: Check for invalid sideloaded Smart PC Policies X-Git-Tag: v6.15-rc7~37^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=690d722e02819ef978f90cd7553973eba1007e6c;p=thirdparty%2Fkernel%2Flinux.git drivers/platform/x86/amd: pmf: Check for invalid sideloaded Smart PC Policies If a policy is passed into amd_pmf_get_pb_data() that causes the engine to fail to start there is a memory leak. Free the memory in this failure path. Fixes: 10817f28e5337 ("platform/x86/amd/pmf: Add capability to sideload of policy binary") Signed-off-by: Mario Limonciello Link: https://lore.kernel.org/r/20250423132002.3984997-2-superm1@kernel.org Reviewed-by: Ilpo Järvinen Signed-off-by: Ilpo Järvinen --- diff --git a/drivers/platform/x86/amd/pmf/tee-if.c b/drivers/platform/x86/amd/pmf/tee-if.c index 14b99d8b63d2f..e008ac079fade 100644 --- a/drivers/platform/x86/amd/pmf/tee-if.c +++ b/drivers/platform/x86/amd/pmf/tee-if.c @@ -364,9 +364,14 @@ static ssize_t amd_pmf_get_pb_data(struct file *filp, const char __user *buf, amd_pmf_hex_dump_pb(dev); ret = amd_pmf_start_policy_engine(dev); if (ret < 0) - return ret; + goto cleanup; return length; + +cleanup: + kfree(dev->policy_buf); + dev->policy_buf = NULL; + return ret; } static const struct file_operations pb_fops = {