fs/archelp: If path given to grub_archelp_dir() is not a directory return error
Specifically, return GRUB_ERR_BAD_FILE_TYPE because this is what is expected by the ls command when it is given a path to a non-directory. This fixes a bug where calling ls with a list of non-directory paths outputs a blank line for each such argument. Signed-off-by: Glenn Washburn <development@efficientek.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
1de5832699
commit
fcbea18c58
@ -180,6 +180,14 @@ grub_archelp_dir (struct grub_archelp_data *data,
|
||||
if (p)
|
||||
*p = 0;
|
||||
|
||||
if ((*n == 0) && ((mode & GRUB_ARCHELP_ATTR_TYPE)
|
||||
!= GRUB_ARCHELP_ATTR_DIR))
|
||||
{
|
||||
grub_error (GRUB_ERR_BAD_FILE_TYPE, N_("not a directory"));
|
||||
grub_free (name);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (((!prev) || (grub_strcmp (prev, name) != 0)) && *n != 0)
|
||||
{
|
||||
struct grub_dirhook_info info;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user