drivers/platform/x86/amd: pmf: Check for invalid sideloaded Smart PC Policies
authorMario Limonciello <mario.limonciello@amd.com>
Wed, 23 Apr 2025 13:18:44 +0000 (08:18 -0500)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 29 Apr 2025 14:47:41 +0000 (17:47 +0300)
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 <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20250423132002.3984997-2-superm1@kernel.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/amd/pmf/tee-if.c

index 14b99d8..e008ac0 100644 (file)
@@ -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 = {