summaryrefslogtreecommitdiff
path: root/kern/bootstrap.c
diff options
context:
space:
mode:
Diffstat (limited to 'kern/bootstrap.c')
-rw-r--r--kern/bootstrap.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/kern/bootstrap.c b/kern/bootstrap.c
index a504115..2d9e456 100644
--- a/kern/bootstrap.c
+++ b/kern/bootstrap.c
@@ -99,13 +99,28 @@ void bootstrap_create()
{
struct multiboot_module *bmods = ((struct multiboot_module *)
phystokv(boot_info.mods_addr));
+ char *p;
if (!(boot_info.flags & MULTIBOOT_MODS)
|| (boot_info.mods_count == 0))
panic ("No bootstrap code loaded with the kernel!");
- if (boot_info.mods_count == 1
- && strchr((char*)phystokv(bmods[0].string), ' ') == 0)
+ if (boot_info.mods_count == 1)
+ {
+ p = strchr((char*)phystokv(bmods[0].string), ' ');
+ if (p != 0)
+ {
+ do
+ ++p;
+ while (*p == ' ');
+ if (*p == '\0')
+ p = 0;
+ }
+ }
+ else
+ p = 0;
+
+ if (p == 0)
{
printf("Loading single multiboot module in compat mode: %s\n",
(char*)phystokv(bmods[0].string));