2004-12-13 Marco Gerards <metgerards@student.han.nl>

* 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
	<subdino2004@yahoo.fr>.

	* fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
	it is not allocated.  Reported by Vincent Pelletier
	<subdino2004@yahoo.fr>.

	* normal/cmdline.c (grub_tab_complete): Add a blank line to the
	output so the output looks better.
This commit is contained in:
marco_g 2004-12-13 17:26:17 +00:00
parent 3f1578fe4a
commit 4ceb3636de
4 changed files with 18 additions and 6 deletions

View file

@ -1,3 +1,17 @@
2004-12-13 Marco Gerards <metgerards@student.han.nl>
* 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
<subdino2004@yahoo.fr>.
* fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
it is not allocated. Reported by Vincent Pelletier
<subdino2004@yahoo.fr>.
* normal/cmdline.c (grub_tab_complete): Add a blank line to the
output so the output looks better.
2004-12-04 Marco Gerards <metgerards@student.han.nl> 2004-12-04 Marco Gerards <metgerards@student.han.nl>
Modulize the partition map support and add support for the amiga Modulize the partition map support and add support for the amiga

View file

@ -509,9 +509,9 @@ grub_ext2_open (struct grub_file *file, const char *name)
return 0; return 0;
fail: fail:
grub_free (data);
if (fdiro != &data->diropen) if (fdiro != &data->diropen)
grub_free (fdiro); grub_free (fdiro);
grub_free (data);
#ifndef GRUB_UTIL #ifndef GRUB_UTIL
grub_dl_unref (my_mod); 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_fshelp_find_file (path, &data->diropen, &fdiro, grub_ext2_iterate_dir,
grub_ext2_read_symlink, GRUB_FSHELP_DIR); grub_ext2_read_symlink, GRUB_FSHELP_DIR);
if (grub_errno) if (grub_errno)
return grub_errno; goto fail;
grub_ext2_iterate_dir (fdiro, iterate); grub_ext2_iterate_dir (fdiro, iterate);
fail: fail:
grub_free (data);
if (fdiro != &data->diropen) if (fdiro != &data->diropen)
grub_free (fdiro); grub_free (fdiro);
grub_free (data);
#ifndef GRUB_UTIL #ifndef GRUB_UTIL
grub_dl_unref (my_mod); grub_dl_unref (my_mod);

View file

@ -130,10 +130,8 @@ grub_fshelp_find_file (const char *path, grub_fshelp_node_t rootnode,
/* Iterate over the directory. */ /* Iterate over the directory. */
found = iterate_dir (currnode, iterate); found = iterate_dir (currnode, iterate);
if (!found) if (!found)
{ {
free_node (oldnode);
if (grub_errno) if (grub_errno)
return grub_errno; return grub_errno;

View file

@ -205,7 +205,7 @@ grub_tab_complete (char *buf, int *restore)
/* Multiple matches found, print the first instead of completing. */ /* Multiple matches found, print the first instead of completing. */
else if (numfound == 2) else if (numfound == 2)
{ {
grub_printf ("\nPossible %s are: ", what); grub_printf ("\nPossible %s are:\n", what);
print_completion (found); print_completion (found);
} }