grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Call a module's init function only after the module is successfu


From: Joe Auricchio
Subject: [PATCH] Call a module's init function only after the module is successfully added
Date: Mon, 20 Jul 2009 21:00:57 -0700

Hi,

* kern/dl.c (grub_dl_load_core): Call grub_dl_call_init only after
successful grub_dl_add

With this patch the module's init function will no longer be called:
- if the module is already loaded
- if malloc fails in grub_dl_add
- before the module is added to grub_dl_head

The first two are errors and cause the load to abort. The module shouldn't try to init if it's only going to abort. I don't know much about grub_dl_head, so I don't know if #3 could have caused problems.

-joe

-=-=-=-=-=-=-=-=-=-=-=-=-
--- a/grub2/kern/dl.c   2009-07-07 16:58:01.000000000 -0700
+++ b/grub2/kern/dl.c   2009-07-16 13:57:18.000000000 -0700
@@ -558,16 +558,17 @@
  grub_dl_flush_cache (mod);

  grub_dprintf ("modules", "module name: %s\n", mod->name);
  grub_dprintf ("modules", "init function: %p\n", mod->init);
-  grub_dl_call_init (mod);

  if (grub_dl_add (mod))
    {
      grub_dl_unload (mod);
      return 0;
    }

+  grub_dl_call_init (mod);
+
  return mod;
}

/* Load a module from the file FILENAME.  */





reply via email to

[Prev in Thread] Current Thread [Next in Thread]