grub-devel
[Top][All Lists]
Advanced

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

[PATCH 1/4] Handle errors in rmmod


From: Pavel Roskin
Subject: [PATCH 1/4] Handle errors in rmmod
Date: Tue, 21 Jul 2009 23:16:38 -0400
User-agent: StGit/0.15-rc1-9-gd8846

ChangeLog:

        * commands/minicmd.c (grub_mini_cmd_rmmod): Check the result of
        grub_dl_unload(), but not of grub_dl_unref().  On failure,
        restore reference count and report error.
---
 commands/minicmd.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/commands/minicmd.c b/commands/minicmd.c
index b314388..1f5abae 100644
--- a/commands/minicmd.c
+++ b/commands/minicmd.c
@@ -288,8 +288,12 @@ grub_mini_cmd_rmmod (struct grub_command *cmd 
__attribute__ ((unused)),
   if (! mod)
     return grub_error (GRUB_ERR_BAD_ARGUMENT, "no such module");
 
-  if (grub_dl_unref (mod) <= 0)
-    grub_dl_unload (mod);
+  grub_dl_unref (mod);
+  if (grub_dl_unload (mod) == 0)
+    {
+      grub_dl_ref (mod);
+      return grub_error (GRUB_ERR_BAD_MODULE, "`%s' is in use", mod->name);
+    }
 
   return 0;
 }




reply via email to

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