Acked-by: Peter Müller > Fixes: #13155 - _fireinfo.detect_hypervisor() rises Segmentation fault > Signed-off-by: Michael Tremer > --- > lfs/fireinfo | 1 + > ...-one-error-when-detecting-hypervisor.patch | 38 +++++++++++++++++++ > 2 files changed, 39 insertions(+) > create mode 100644 src/patches/fireinfo-virt-fix-off-by-one-error-when-detecting-hypervisor.patch > > diff --git a/lfs/fireinfo b/lfs/fireinfo > index 8b38885d6..629626d1e 100644 > --- a/lfs/fireinfo > +++ b/lfs/fireinfo > @@ -75,6 +75,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) > cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo/fireinfo-2.2.0-python-3.8.patch > cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo/fireinfo-system-blacklist-jetways-product-uuid.patch > cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo/fireinfo-system-ignore-when-the-serial-number-is-ssn.patch > + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-virt-fix-off-by-one-error-when-detecting-hypervisor.patch > > cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh > cd $(DIR_APP) && ./configure --prefix=/usr > diff --git a/src/patches/fireinfo-virt-fix-off-by-one-error-when-detecting-hypervisor.patch b/src/patches/fireinfo-virt-fix-off-by-one-error-when-detecting-hypervisor.patch > new file mode 100644 > index 000000000..0799ecce5 > --- /dev/null > +++ b/src/patches/fireinfo-virt-fix-off-by-one-error-when-detecting-hypervisor.patch > @@ -0,0 +1,38 @@ > +From e3e68b9baa9723916b1999394432e9ad260cfaa2 Mon Sep 17 00:00:00 2001 > +From: Michael Tremer > +Date: Sat, 1 Jul 2023 09:08:48 +0000 > +Subject: [PATCH] virt: Fix off-by-one error when detecting hypervisor > + > +Reported-by: Mauro Condarelli > +Fixes: #13155 - _fireinfo.detect_hypervisor() rises Segmentation fault > +Signed-off-by: Michael Tremer > +--- > + src/_fireinfo/fireinfo.c | 4 ++-- > + 1 file changed, 2 insertions(+), 2 deletions(-) > + > +diff --git a/src/_fireinfo/fireinfo.c b/src/_fireinfo/fireinfo.c > +index 1d3f424..18edf34 100644 > +--- a/src/_fireinfo/fireinfo.c > ++++ b/src/_fireinfo/fireinfo.c > +@@ -32,8 +32,8 @@ enum hypervisors { > + HYPER_KVM, > + HYPER_MSHV, > + HYPER_VMWARE, > ++ // Must always be last > + HYPER_OTHER, > +- HYPER_LAST /* for loop - must be last*/ > + }; > + > + const char *hypervisor_ids[] = { > +@@ -157,7 +157,7 @@ int detect_hypervisor(int *hypervisor) { > + *hypervisor = HYPER_OTHER; > + > + if (*sig.text) { > +- for (int id = HYPER_NONE + 1; id < HYPER_LAST; id++) { > ++ for (int id = HYPER_NONE + 1; id < HYPER_OTHER; id++) { > + if (strcmp(hypervisor_ids[id], sig.text) == 0) { > + *hypervisor = id; > + break; > +-- > +2.39.2 > +