|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-devel
[Xen-devel] [PATCH]: hvmloader: Fixed get_memsize() overflow 
| Hi,
When hvmloader calculate memory via get_memsize(), we have to cast 
hvm_info->high_mem_pgend to uint64_t, or may overflow and made hvm
guest bootup failed.
How to reproduce:
  Set memory size more than 3840M and the value a little less than
  multi 1024M like 4095, 4094, 8024 and so on, boot hvm will failed.
Signed-off-by: Joe Jin <joe.jin@xxxxxxxxxx>
Cc: Keir Fraser <keir.fraser@xxxxxxxxxx>
 smbios.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
---
diff -r c0cb307d927f tools/firmware/hvmloader/smbios.c
--- a/tools/firmware/hvmloader/smbios.c Mon Jul 13 12:35:34 2009 +0100
+++ b/tools/firmware/hvmloader/smbios.c Fri Jul 24 10:24:28 2009 +0800
@@ -148,7 +148,7 @@
 
     sz = (uint64_t)hvm_info->low_mem_pgend << PAGE_SHIFT;
     if ( hvm_info->high_mem_pgend )
-        sz += (hvm_info->high_mem_pgend << PAGE_SHIFT) - (1ull << 32);
+        sz += ((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT) - (1ull << 
32);
 
     /*
      * Round up to the nearest MB.  The user specifies domU pseudo-physical 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 | 
 
| <Prev in Thread] | Current Thread | [Next in Thread> |  | 
[Xen-devel] [PATCH]: hvmloader: Fixed get_memsize() overflow,
Joe Jin <=
 |  |  | 
  
    |  |  |