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

Re: [PATCH] libxl: preserve errno in libxl__xcinfo2xlinfo()


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Jason Andryuk <jason.andryuk@xxxxxxx>
  • Date: Wed, 27 Aug 2025 21:16:38 -0400
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=suse.com 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=vQuakn5Cx43K0xwmprAVCgxQPF9KfmMWgWrhRwDQfMc=; b=xB0sJgw1aTP3bkOLL60MsVckCWyvHSKmzLIyJXEX+DFCQRybHL37nBBqMq2tR6HudKKsYoS1fK7/ur+J0Q2x4T+dkjgmAqf+q/RlsqKpoLntxx589UHEEKtHK69ZndmKYMXkwHzxcib2aF98bTfdp2vySlFPfXfB0jhIu2AOt4jbBGTqg36tapDWCGKu4ti77FGfOvsSUUbdMG0hdREOv+KB97pgocxmP1q/GIUMI1ymkUW50jOAmxgNiGL51+wJIxrjuaHQTahyneXcasc01Fmj+gTOZGu8N8+bsELEub7vhqXsz+x3g1RXV4YnheMMxVYt7jNlF5P+qOxfRMjRcg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vYfohkLBilHt15ywWWkstnXjriH1PomF3sCF6hIYOEhTFsn6sfQTLMyQFMNWLqC663V0k9vmhQIl+e5rrQcMI6w5il0wffjrzK4pHDBwLMF7HrTLklYIMy8b/JtdAq6h4KN72qht6RRD1HY97xTIwU7ZZm0ydMAahdLICUj5MSS6P5zd9320pk2QVyDgIjgOnkOjytDLJdFjVC+3UEuDo61Qa/KYJlQYzn17xlQPjgDz+ES8zXiQD7RfRCowLVp4htZEOUnIRroRo4A/JacY9KSpozP1Xp8sI8LTHOA0jj1QC7oX4Eg2gdqgaYASETOptFfzYsZEuNolD3JfQOegTQ==
  • Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>
  • Delivery-date: Thu, 28 Aug 2025 01:16:50 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 2025-08-27 01:57, Jan Beulich wrote:
Callers observing errors elsewhere may be confused by the ENOSYS that
the Flask operation would yield on a Flask-disabled hypervisor.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
Of course I don't know whether clobbering errno is perhaps deemed "fine"
in libxl.

I wonder if it would be better to special case libxl_flask_sid_to_context() to preserve errno on ENOSYS. flask returning ENOSYS is common, but libxl_flask_sid_to_context() can legitimately have error.

I guess this is fine if we want to use this approach:

Reviewed-by: Jason Andryuk <jason.andryuk@xxxxxxx>

--- a/tools/libs/light/libxl_domain.c
+++ b/tools/libs/light/libxl_domain.c
@@ -277,6 +277,7 @@ void libxl__xcinfo2xlinfo(libxl_ctx *ctx
                            libxl_dominfo *xlinfo)
  {
      size_t size;
+    int saved_errno = errno;
memcpy(&(xlinfo->uuid), xcinfo->handle, sizeof(xen_domain_handle_t));
      xlinfo->domid = xcinfo->domain;
@@ -284,6 +285,7 @@ void libxl__xcinfo2xlinfo(libxl_ctx *ctx
      if (libxl_flask_sid_to_context(ctx, xlinfo->ssidref,
                                     &xlinfo->ssid_label, &size) < 0)
          xlinfo->ssid_label = NULL;
+    errno = saved_errno;
xlinfo->dying = !!(xcinfo->flags&XEN_DOMINF_dying);
      xlinfo->shutdown   = !!(xcinfo->flags&XEN_DOMINF_shutdown);





 


Rackspace

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