From 50b5a0a793d3cc13eb69e4e8fdf78e8192ea1246 Mon Sep 17 00:00:00 2001 From: okuji Date: Thu, 23 Jun 2005 08:12:19 +0000 Subject: [PATCH] 2005-06-23 Yoshinori K. Okuji * kern/mm.c (grub_free): If the next free block which is being merged is the first free block, set the first block to the block being freed. Reported by Vincent Guffens . --- ChangeLog | 7 +++++++ THANKS | 1 + kern/mm.c | 3 +++ 3 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index b0fb82f2d..1f5f80d74 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-06-23 Yoshinori K. Okuji + + * kern/mm.c (grub_free): If the next free block which is being + merged is the first free block, set the first block to the block + being freed. + Reported by Vincent Guffens . + 2005-05-08 Hollis Blanchard * boot/powerpc/ieee1275/cmain.c (cmain): Initialize diff --git a/THANKS b/THANKS index b1871d1f8..4209aa64b 100644 --- a/THANKS +++ b/THANKS @@ -16,6 +16,7 @@ Robert Bihlmeyer Timothy Baldwin Tomas Ebenlendr Tsuneyoshi Yasuo +Vincent Guffens Vincent Pelletier Also, we thank the projects GNU Automake and LZO. Some code diff --git a/kern/mm.c b/kern/mm.c index 035f93d1d..f27c3bc28 100644 --- a/kern/mm.c +++ b/kern/mm.c @@ -295,6 +295,9 @@ grub_free (void *ptr) if (p + p->size == p->next) { + if (p->next == q) + q = p; + p->next->magic = 0; p->size += p->next->size; p->next = p->next->next;