Hello!

config_file was defined as a pointer in shared.h and as an array in asm.S
This caused a failure while loading the menu, except in /sbin/grub, which
allocated config_file separately.
Patch attached. It also corrects version_string for /sbin/grub

Now GRUB works for me!

Pavel Roskin
diff -ur grub.orig/grub/asmstub.c grub/grub/asmstub.c
--- grub.orig/grub/asmstub.c    Sun May  2 23:53:37 1999
+++ grub/grub/asmstub.c Mon May  3 13:07:35 1999
@@ -60,8 +60,8 @@
 
 unsigned long install_partition = 0x20000;
 unsigned long boot_drive = 0;
-char version_string[] = "0.5";
-char *config_file = "/boot/grub/menu.lst";
+char version_string[] = VERSION;
+char config_file[128] = "/boot/grub/menu.lst";
 
 /* Emulation requirements. */
 char *grub_scratch_mem = 0;
diff -ur grub.orig/grub/main.c grub/grub/main.c
--- grub.orig/grub/main.c       Sun Mar 28 01:24:26 1999
+++ grub/grub/main.c    Mon May  3 13:09:41 1999
@@ -119,7 +119,7 @@
          break;
 
        case OPT_CONFIG_FILE:
-         config_file = strdup (optarg);
+         strcpy(config_file, optarg);
          break;
 
        case OPT_INSTALL_PARTITION:
diff -ur grub.orig/shared_src/shared.h grub/shared_src/shared.h
--- grub.orig/shared_src/shared.h       Sat Apr 24 11:23:16 1999
+++ grub/shared_src/shared.h    Mon May  3 13:04:23 1999
@@ -280,7 +280,7 @@
 extern unsigned long install_partition;
 extern unsigned long boot_drive;
 extern char version_string[];
-extern char *config_file;
+extern char config_file[];
 
 #ifndef STAGE1_5
 /* GUI interface variables. */

Reply via email to