2009-08-01 Robert Millan * loader/i386/bsd.c (grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module) (grub_cmd_freebsd_module_elf): Abort with "You need to load the kernel first." when `kernel_type' is set to KERNEL_TYPE_NONE. Index: loader/i386/bsd.c =================================================================== --- loader/i386/bsd.c (revision 2461) +++ loader/i386/bsd.c (working copy) @@ -47,7 +47,7 @@ #define MOD_BUF_ALLOC_UNIT 4096 -static int kernel_type; +static int kernel_type; /* 0 == KERNEL_TYPE_NONE */ static grub_dl_t my_mod; static grub_addr_t entry, entry_hi, kern_start, kern_end; static grub_uint32_t bootflags; @@ -914,6 +914,10 @@ grub_cmd_freebsd_loadenv (grub_command_t char *buf = 0, *curr, *next; int len; + if (kernel_type == KERNEL_TYPE_NONE) + return grub_error (GRUB_ERR_BAD_ARGUMENT, + "You need to load the kernel first."); + if (kernel_type != KERNEL_TYPE_FREEBSD) return grub_error (GRUB_ERR_BAD_ARGUMENT, "only freebsd support environment"); @@ -1004,6 +1008,10 @@ grub_cmd_freebsd_module (grub_command_t char **modargv; char *type; + if (kernel_type == KERNEL_TYPE_NONE) + return grub_error (GRUB_ERR_BAD_ARGUMENT, + "You need to load the kernel first."); + if (kernel_type != KERNEL_TYPE_FREEBSD) return grub_error (GRUB_ERR_BAD_ARGUMENT, "only freebsd support module"); @@ -1066,6 +1074,10 @@ grub_cmd_freebsd_module_elf (grub_comman grub_file_t file = 0; grub_err_t err; + if (kernel_type == KERNEL_TYPE_NONE) + return grub_error (GRUB_ERR_BAD_ARGUMENT, + "You need to load the kernel first."); + if (kernel_type != KERNEL_TYPE_FREEBSD) return grub_error (GRUB_ERR_BAD_ARGUMENT, "only freebsd support module");