]> git.proxmox.com Git - grub2.git/commitdiff
2005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
authormarco_g <marco_g@localhost>
Thu, 20 Jan 2005 17:33:09 +0000 (17:33 +0000)
committermarco_g <marco_g@localhost>
Thu, 20 Jan 2005 17:33:09 +0000 (17:33 +0000)
* include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
((unused))' to `__attribute__ ((used))'.
(GRUB_MOD_FINI): Likewise.
* kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
* genmk.rb (PModule): Assign space to common symbols when linking
modules.

ChangeLog
genmk.rb
include/grub/dl.h
kern/dl.c

index 956f1933e2d3f68a925e95be215f11a177d4cd97..7ccefb7b409e2dbf98aad1b1d11863124f3d56d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-01-20  Timothy Baldwin  <T.E.Baldwin99@members.leeds.ac.uk>
+
+       * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
+       ((unused))' to `__attribute__ ((used))'.        
+       (GRUB_MOD_FINI): Likewise.
+       * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
+       * genmk.rb (PModule): Assign space to common symbols when linking
+       modules.
+
 2005-01-20  Marco Gerards  <metgerards@student.han.nl>
 
        * include/grub/mm.h (grub_mm_init_region): Change the type of the
index 6a749c29dbc68ebb0e2e488d77599ea5a7013a10..94fe9b3d86dcb466bd97c6d8ff89f3b1fa597d6c 100644 (file)
--- a/genmk.rb
+++ b/genmk.rb
@@ -117,12 +117,12 @@ UNDSYMFILES += #{undsym}
 
 #{@name}: #{pre_obj} #{mod_obj}
        -rm -f $@
-       $(LD) -r -o $@ $^
+       $(LD) -r -d -o $@ $^
        $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
 
 #{pre_obj}: #{objs_str}
        -rm -f $@
-       $(LD) -r -o $@ $^
+       $(LD) -r -d -o $@ $^
 
 #{mod_obj}: #{mod_src}
        $(CC) $(CPPFLAGS) $(CFLAGS) $(#{prefix}_CFLAGS) -c -o $@ $<
index a62319596a0fb6f4351c991a385a933cfd91d453..3ddff6d81a26298e8f9d5b1027830858ccd9bd3d 100644 (file)
 #include <grub/types.h>
 
 #define GRUB_MOD_INIT  \
-static void grub_mod_init (grub_dl_t mod) __attribute__ ((unused)); \
+static void grub_mod_init (grub_dl_t mod) __attribute__ ((used)); \
 static void \
 grub_mod_init (grub_dl_t mod)
 
 #define GRUB_MOD_FINI  \
-static void grub_mod_fini (void) __attribute__ ((unused)); \
+static void grub_mod_fini (void) __attribute__ ((used)); \
 static void \
 grub_mod_fini (void)
 
index 12a7c32337c8ccbe42dc21ee14be42ee92179a1b..e6a172c7af03e2fd04c57a5212566fe19a114b12 100644 (file)
--- a/kern/dl.c
+++ b/kern/dl.c
@@ -560,6 +560,9 @@ grub_dl_load_file (const char *filename)
     goto failed;
 
   mod = grub_dl_load_core (core, size);
+  if (! mod)
+    goto failed;
+  
   mod->ref_count = 0;
 
  failed: