From 3481a2370c107f9027cb60183c3dbc3de8318502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Date: Tue, 12 Mar 2024 17:04:51 +0000 Subject: [PATCH] xenopsd: fix Xen version comparison. 4.17 is > 4.2, not lower! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't use string comparisons for versions, "17" < "2", but 17 > 2! Signed-off-by: Edwin Török --- ocaml/xenopsd/lib/xenops_utils.ml | 4 ++-- ocaml/xenopsd/xc/xenops_server_xen.ml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ocaml/xenopsd/lib/xenops_utils.ml b/ocaml/xenopsd/lib/xenops_utils.ml index 9a6ae66a9f7..d948f9865d9 100644 --- a/ocaml/xenopsd/lib/xenops_utils.ml +++ b/ocaml/xenopsd/lib/xenops_utils.ml @@ -584,7 +584,7 @@ let _sys_hypervisor_version_major = "/sys/hypervisor/version/major" let _sys_hypervisor_version_minor = "/sys/hypervisor/version/minor" type hypervisor = - | Xen of string * string + | Xen of int * int (* major, minor *) | Other of string @@ -601,7 +601,7 @@ let detect_hypervisor () = let minor = String.trim (Unixext.string_of_file _sys_hypervisor_version_minor) in - Some (Xen (major, minor)) + Some (Xen (int_of_string major, int_of_string minor)) | x -> Some (Other x) else diff --git a/ocaml/xenopsd/xc/xenops_server_xen.ml b/ocaml/xenopsd/xc/xenops_server_xen.ml index 4de4bbc3573..406770f89c8 100644 --- a/ocaml/xenopsd/xc/xenops_server_xen.ml +++ b/ocaml/xenopsd/xc/xenops_server_xen.ml @@ -5148,10 +5148,10 @@ let init () = let major, minor = look_for_xen () in look_for_xenctrl () ; if - major < "4" || ((major = "4" && minor < "2") && !Xenopsd.run_hotplug_scripts) + major < 4 || ((major = 4 && minor < 2) && !Xenopsd.run_hotplug_scripts) then ( error - "This is xen version %s.%s. On all versions < 4.1 we must use \ + "This is xen version %d.%d. On all versions < 4.2 we must use \ hotplug/udev scripts" major minor ; error