mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
tools/libxl: Fix memory leak in libxl_cpuid_set()
xc_cpuid_set() returns allocated memory via cpuid_res, which libxl needs to free() seeing as it discards the results. This is logically a backport of c/sb91825f628"tools/libxc: Drop config_transformed parameter from xc_cpuid_set()" but rewritten as one caller of xc_cpuid_set() does use returned values. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> (cherry picked from commitc54de7d9df)
This commit is contained in:
1 parent
d58c48df8c
commit
06760c2bf3
1 file changed
+6
-1
@@ -404,12 +404,17 @@ void libxl_cpuid_apply_policy(libxl_ctx *ctx, uint32_t domid)
|
||||
void libxl_cpuid_set(libxl_ctx *ctx, uint32_t domid,
|
||||
libxl_cpuid_policy_list cpuid)
|
||||
{
|
||||
int i;
|
||||
int i, j;
|
||||
char *cpuid_res[4];
|
||||
|
||||
for (i = 0; cpuid[i].input[0] != XEN_CPUID_INPUT_UNUSED; i++)
|
||||
{
|
||||
xc_cpuid_set(ctx->xch, domid, cpuid[i].input,
|
||||
(const char**)(cpuid[i].policy), cpuid_res);
|
||||
|
||||
for (j = 0; j < ARRAY_SIZE(cpuid_res); ++j)
|
||||
free(cpuid_res[j]);
|
||||
}
|
||||
}
|
||||
|
||||
static const char *input_names[2] = { "leaf", "subleaf" };
|
||||
|
||||