diff --git a/ChangeLog b/ChangeLog index e58edb321..27e51cec1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2004-12-13 Marco Gerards + + * fs/ext2.c (grub_ext2_open): Don't use data after freeing it. + (grub_ext2_dir): Likewise. Don't return in case of an error, jump + to fail instead. Reported by Vincent Pelletier + . + + * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when + it is not allocated. Reported by Vincent Pelletier + . + + * normal/cmdline.c (grub_tab_complete): Add a blank line to the + output so the output looks better. + 2004-12-04 Marco Gerards Modulize the partition map support and add support for the amiga diff --git a/fs/ext2.c b/fs/ext2.c index 056f38ac1..56f583aad 100644 --- a/fs/ext2.c +++ b/fs/ext2.c @@ -509,9 +509,9 @@ grub_ext2_open (struct grub_file *file, const char *name) return 0; fail: - grub_free (data); if (fdiro != &data->diropen) grub_free (fdiro); + grub_free (data); #ifndef GRUB_UTIL grub_dl_unref (my_mod); @@ -580,14 +580,14 @@ grub_ext2_dir (grub_device_t device, const char *path, grub_fshelp_find_file (path, &data->diropen, &fdiro, grub_ext2_iterate_dir, grub_ext2_read_symlink, GRUB_FSHELP_DIR); if (grub_errno) - return grub_errno; + goto fail; grub_ext2_iterate_dir (fdiro, iterate); fail: - grub_free (data); if (fdiro != &data->diropen) grub_free (fdiro); + grub_free (data); #ifndef GRUB_UTIL grub_dl_unref (my_mod); diff --git a/fs/fshelp.c b/fs/fshelp.c index bc838d223..af2f2b457 100644 --- a/fs/fshelp.c +++ b/fs/fshelp.c @@ -130,10 +130,8 @@ grub_fshelp_find_file (const char *path, grub_fshelp_node_t rootnode, /* Iterate over the directory. */ found = iterate_dir (currnode, iterate); - if (!found) { - free_node (oldnode); if (grub_errno) return grub_errno; diff --git a/normal/cmdline.c b/normal/cmdline.c index f8a339505..dc9d68bc3 100644 --- a/normal/cmdline.c +++ b/normal/cmdline.c @@ -205,7 +205,7 @@ grub_tab_complete (char *buf, int *restore) /* Multiple matches found, print the first instead of completing. */ else if (numfound == 2) { - grub_printf ("\nPossible %s are: ", what); + grub_printf ("\nPossible %s are:\n", what); print_completion (found); }