[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] tools/libxl: Only read legacy altp2m on HVM


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Jason Andryuk <jason.andryuk@xxxxxxx>
  • Date: Mon, 12 May 2025 19:54:08 -0400
  • 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=FWzImoHZtUsaD5LYTagTZgAmQYYnBWuK5k+u1fuPZEk=; b=emkViMz0FXpc9yv29gMaMtu7f/xValj61OAV1jfjvOuWBL6i27yYXnhW8ASx1+HZt+qcIBvUVF7BspiQVwmc3GY8TOmJCeBqrKSI5t7EB76IAUOqrqRIIXAMghuZ82ZmQhaDBNvr3CelgIsmlh+6kCaoA/vaairq1rsZF+2TeK8eHJDUASYBzKg8a98LjGXDjQ//x7uL/emUOCAojPS4OjFFdKBpH+8G9vvPRsmfFIIvRdrJf7U1nMmgGkibAPqhYobhX4R2+UrPFGfR0somPozXubmkhHcltURAwic94jvWRWhrPBUIxfaDleSoQ2dnZXdzp+OwhmnjUySawQMPTQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yztJB1E6jZtmrOVY5I9VlUcAvwXGM0A7lXTky+QTTmZIrgbDMeib+qw60oT2N0GTZNCpByPVehWh71k1OmRuJ7FwvrgH/0B2Bvy4fByeY2h6FPi4YxJ6GNhjEc/Wk+U7aoZgjl3mtyuAY/UTSNMoRDli/SrzGK+F/9uWdHjauxJKU+ooXNivoR0bu5274kn0+C15dRzUl7lIwZctfe9xkwuZKUNCXRs8oREXN1GgEky5o6oouj3DoW4id8BVjzPK7vfbMMpa7rOdAvrB/u6F49pjCHy8qkIWJ0aydbh7koHNBte13hy+kD1SM/vR+F4XUI1eB43wurmgDIAvx4DKHg==
  • Cc: Jason Andryuk <jason.andryuk@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>
  • Delivery-date: Mon, 12 May 2025 23:54:57 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Only read the HVM union b_info->u.hvm on HVM guests.  The union
access is not guarded, so this reads even on non-HVM guests.  Usually
this doesn't matter as PV and PVH unions are smaller and
zero-initialized.  But it could incorrectly set b_info->altp2m through
aliased data.

Fixes: 0291089f6ea8 ("xen: enable altp2m at create domain domctl")
Signed-off-by: Jason Andryuk <jason.andryuk@xxxxxxx>
---
 tools/libs/light/libxl_x86.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
index 0b1c2d3a96..b8f6663829 100644
--- a/tools/libs/light/libxl_x86.c
+++ b/tools/libs/light/libxl_x86.c
@@ -821,10 +821,12 @@ int libxl__arch_domain_build_info_setdefault(libxl__gc 
*gc,
      * If the legacy field info->u.hvm.altp2m is set, activate altp2m.
      * Otherwise set altp2m based on the field info->altp2m.
      */
-    libxl_defbool_setdefault(&b_info->u.hvm.altp2m, false);
-    if (b_info->altp2m == LIBXL_ALTP2M_MODE_DISABLED &&
-        libxl_defbool_val(b_info->u.hvm.altp2m))
-        b_info->altp2m = libxl_defbool_val(b_info->u.hvm.altp2m);
+    if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
+        libxl_defbool_setdefault(&b_info->u.hvm.altp2m, false);
+        if (b_info->altp2m == LIBXL_ALTP2M_MODE_DISABLED &&
+            libxl_defbool_val(b_info->u.hvm.altp2m))
+            b_info->altp2m = libxl_defbool_val(b_info->u.hvm.altp2m);
+    }
 
     return 0;
 }
-- 
2.49.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.