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:
parent
3f1578fe4a
commit
4ceb3636de
4 changed files with 18 additions and 6 deletions
14
ChangeLog
14
ChangeLog
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue