From 506e5a3b1f2bbd87dad745d3288497b369b77a62 Mon Sep 17 00:00:00 2001
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Tue, 6 Apr 2010 02:04:22 +0200
Subject: Fix crash on Xen when no module is provided

	* kern/bootstrap.c (bootstrap_create): Iterate over bmods only
	if is not NULL.
---
 kern/bootstrap.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

(limited to 'kern/bootstrap.c')

diff --git a/kern/bootstrap.c b/kern/bootstrap.c
index cf10d673..c07b032d 100644
--- a/kern/bootstrap.c
+++ b/kern/bootstrap.c
@@ -110,12 +110,13 @@ void bootstrap_create()
 #ifdef	MACH_XEN
   struct multiboot_module *bmods = ((struct multiboot_module *)
                                    boot_info.mod_start);
-  int n;
-  for (n = 0; bmods[n].mod_start; n++) {
-    bmods[n].mod_start = kvtophys(bmods[n].mod_start + (vm_offset_t) bmods);
-    bmods[n].mod_end = kvtophys(bmods[n].mod_end + (vm_offset_t) bmods);
-    bmods[n].string = kvtophys(bmods[n].string + (vm_offset_t) bmods);
-  }
+  int n = 0;
+  if (bmods)
+    for (n = 0; bmods[n].mod_start; n++) {
+      bmods[n].mod_start = kvtophys(bmods[n].mod_start + (vm_offset_t) bmods);
+      bmods[n].mod_end = kvtophys(bmods[n].mod_end + (vm_offset_t) bmods);
+      bmods[n].string = kvtophys(bmods[n].string + (vm_offset_t) bmods);
+    }
   boot_info.mods_count = n;
   boot_info.flags |= MULTIBOOT_MODS;
 #else	/* MACH_XEN */
-- 
cgit v1.2.3