Skip to contentSkip to conversation

HVM guest creation crashing with 1 MB of guest memory

PATCH In review Andre Przywara 2 participants 2 messages May 4, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 HVM guest creation crashing with 1 MB of guest memory

Hi,

When an HVM guest is started and assigned exactly one Megabyte of RAM, XEN will crash due to a overflow in building the E820 map in line 90 of tools/libxc/xc_hvm_build.c:
e820entry[nr_map].size = mem_size - 0x100000 - PAGE_SIZE * 3;
If memsize is one MB, the result will be negative (and the member is unsigned). As I don't think this is worth fixing here, I simply increased the minimal required memory for guest from zero to one Megabyte. Could someone check the effect on paravirtualized guests?

Regards,
Andre.

--
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany

----to satisfy European Law for business letters:
AMD Saxony Limited Liability Company & Co. KG
Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896
vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy

tools/python/xen/xend/XendConfig.py +2 -2
diff -r 3a5722420de7 tools/python/xen/xend/XendConfig.py
@@ -360,9 +360,9 @@ class XendConfig(dict):
         if not self["memory_dynamic_max"] <= self["memory_static_max"]:
             raise XendConfigError("memory_dynamic_max must be less " \
                                   "than or equal to memory_static_max")
-        if not self["memory_dynamic_max"] > 0:
+        if not self["memory_dynamic_max"] > 1048576:
             raise XendConfigError("memory_dynamic_max must be greater " \
-                                  "than zero")
+                                  "than one MB")
         if not self["memory_static_max"] > 0:
             raise XendConfigError("memory_static_max must be greater " \
                                   "than zero")

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#1 lore raw
Quoted 8 lines · Andre Przywara

When an HVM guest is started and assigned exactly one Megabyte of RAM, XEN will crash due to a overflow in building the E820 map in line 90 of tools/libxc/xc_hvm_build.c:
e820entry[nr_map].size = mem_size - 0x100000 - PAGE_SIZE * 3; If memsize is one MB, the result will be negative (and the member is unsigned). As I don't think this is worth fixing here, I simply increased the minimal required memory for guest from zero to one Megabyte. Could someone check the effect on paravirtualized guests?

Better to check and reject the memory size in xc_hvm_build() itself. I'll make a patch to do this.

-- Keir