[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 01/18] xen/pmstat: guard perf.states[] access with XEN_PX_INIT
- To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Penny Zheng <Penny.Zheng@xxxxxxx>
- Date: Tue, 27 May 2025 16:48:16 +0800
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GM8OZuCvDFaV06J9Gzt1WwF6Tfxsr646qNHeVMRmifA=; b=ehVusa4wf7oNcsLdZM3n3cAHASPCh/eGANM9bFBF0dzVgr/haOpDMhryL18ZfrufyRbFwY/9SGONsxVtiCAU/z2inhw2SKq2aJJ40l15u2CTZdEXVC3Yl5iwkfKDZoElf8G6W8C5qCKXiAQ5rQsQw/AsRqmZYEiqetLH5+YJmSIiBQbvuAOZX7WUDrkBpUeusPycCldIPiJazBEulkcn0MZIEZHSftvzCZSkRapRNDzG5wA3MUI3azKpqovr0AkfUUnkqQxGSKsvlCitMmL978WF0a6VQdswoMpDDvex7Ta2iSPWZI1iES7EfLVxeDdJP+IeE3ezSn9rz4eql+YnWA==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nY/VuKhGIY2Cjxz6Qe0YYIWYqJzIp+UMHZvjmDpHVNr33Le8UQUHgmZ7FS3KBD9ReAv46PGwH2Vj4HuHbV+YfT4UO2FKVAXy4rG7Acy7Lj5T3/hveOutHuTrmq6UDyTfFZmRuHX9jxMPPAlJS649tnODzn2dCJHZ3cI/s1IBabhNF00NMsTl/XDkIJA1awi+RCXR3UdOD3SQEioivr5ivEqCUBZm7vjrCX45duWWVEVmaRFGeMthPzwcgJfppRbdlI82kXuVKx9EBd9M+nf4b7wKI5utt3lxLPFyD6edkPjWHyRWbMrggF+S0AfqzGQGtTIzmd1+XJINOmBH4fMFUg==
- Cc: <ray.huang@xxxxxxx>, Penny Zheng <Penny.Zheng@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>
- Delivery-date: Tue, 27 May 2025 08:49:33 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
Accessing to perf.states[] array shall not be only guarded with user-defined
hypercall input, so we add XEN_PX_INIT check to gain safety.
Signed-off-by: Penny Zheng <Penny.Zheng@xxxxxxx>
---
v4 -> v5:
- new commit
---
xen/drivers/acpi/pmstat.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index c51b9ca358..b7fcc02db9 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -228,10 +228,13 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
ret = copy_to_guest(op->u.get_para.affected_cpus,
data, op->u.get_para.cpu_num);
- for ( i = 0; i < op->u.get_para.freq_num; i++ )
- data[i] = pmpt->perf.states[i].core_frequency * 1000;
- ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
- data, op->u.get_para.freq_num);
+ if ( pmpt->perf.init & XEN_PX_INIT )
+ {
+ for ( i = 0; i < op->u.get_para.freq_num; i++ )
+ data[i] = pmpt->perf.states[i].core_frequency * 1000;
+ ret += copy_to_guest(op->u.get_para.scaling_available_frequencies,
+ data, op->u.get_para.freq_num);
+ }
xfree(data);
if ( ret )
--
2.34.1
|