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 <jbeul...@suse.com>
---
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.andr...@amd.com>

--- 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);



Reply via email to