HVM guest creation crashing with 1 MB of guest memory
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
@@ -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
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