From afa91a4df5755569b91c87a6b3b6fae095529ed1 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 4 May 2015 16:02:39 +0200 Subject: [PATCH] fireinfo: Fix SEGV on QEMU without KVM --- lfs/fireinfo | 1 + ...hypervisor-name-when-the-CPU-string-.patch | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch diff --git a/lfs/fireinfo b/lfs/fireinfo index e63bdc812c..9d657653ec 100644 --- a/lfs/fireinfo +++ b/lfs/fireinfo @@ -71,6 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-Add-an-other-forbidden-string-Serial.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh cd $(DIR_APP) && ./configure --prefix=/usr diff --git a/src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch b/src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch new file mode 100644 index 0000000000..24a8ca10ff --- /dev/null +++ b/src/patches/fireinfo-Skip-search-for-hypervisor-name-when-the-CPU-string-.patch @@ -0,0 +1,34 @@ +From c667589410912ca980a78f417e86dd6585d58f9a Mon Sep 17 00:00:00 2001 +From: Michael Tremer +Date: Mon, 4 May 2015 16:00:31 +0200 +Subject: [PATCH] Skip search for hypervisor name when the CPU string is empty + +--- + src/_fireinfo/fireinfo.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/src/_fireinfo/fireinfo.c b/src/_fireinfo/fireinfo.c +index fc639d9d4cd9..6601c21a733f 100644 +--- a/src/_fireinfo/fireinfo.c ++++ b/src/_fireinfo/fireinfo.c +@@ -156,11 +156,12 @@ int detect_hypervisor(int *hypervisor) { + + *hypervisor = HYPER_OTHER; + +- int id; +- for (id = HYPER_NONE + 1; id < HYPER_LAST; id++) { +- if (strcmp(hypervisor_ids[id], sig.text) == 0) { +- *hypervisor = id; +- break; ++ if (*sig.text) { ++ for (int id = HYPER_NONE + 1; id < HYPER_LAST; id++) { ++ if (strcmp(hypervisor_ids[id], sig.text) == 0) { ++ *hypervisor = id; ++ break; ++ } + } + } + +-- +2.1.0 + -- 2.39.2