]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/kern/dl.c (grub_dl_unload): Fix freeing segments.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 16 Nov 2011 20:38:00 +0000 (21:38 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 16 Nov 2011 20:38:00 +0000 (21:38 +0100)
ChangeLog
grub-core/kern/dl.c

index b3fd9bf78fe7ef2b7f676d2a4ae0997287bed9f4..1c000592fdf52ae9383fc0ed7d916b643be882d6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-11-16  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/kern/dl.c (grub_dl_unload): Fix freeing segments.
+
 2011-11-16  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/kern/x86_64/efi/callwrap.S: Fix the comment.
index 26cf0d21d97379cb9530b3373666bfc02f800aac..345e80b9009944668d4a01a04b0754f61d1611e6 100644 (file)
@@ -729,7 +729,6 @@ int
 grub_dl_unload (grub_dl_t mod)
 {
   grub_dl_dep_t dep, depn;
-  grub_dl_segment_t seg, segn;
 
   if (mod->ref_count > 0)
     return 0;
@@ -749,13 +748,7 @@ grub_dl_unload (grub_dl_t mod)
       grub_free (dep);
     }
 
-  for (seg = mod->segment; seg; seg = segn)
-    {
-      segn = seg->next;
-      grub_free (seg->addr);
-      grub_free (seg);
-    }
-
+  grub_free (mod->base);
   grub_free (mod->name);
 #ifdef GRUB_MODULES_MACHINE_READONLY
   grub_free (mod->symtab);