grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] ls: prevent double open


From: Daniel Kiper
Subject: Re: [PATCH v2] ls: prevent double open
Date: Tue, 21 Nov 2017 14:20:12 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Nov 13, 2017 at 08:27:28AM -0800, Eric Snowberg wrote:
> Prevent a double open.  This can cause problems with some ieee1275
> devices, causing the system to hang.  The double open can occur
> as follows:
>
> grub_ls_list_files (char *dirname, int longlist, int all, int human)
>        dev = grub_device_open (device_name);
>        dev remains open while:
>        grub_normal_print_device_info (device_name);
>                 dev = grub_device_open (name);
>
> Signed-off-by: Eric Snowberg <address@hidden>
> ---
> changes from v1:
> - Added comment
> ---
>  grub-core/commands/ls.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/grub-core/commands/ls.c b/grub-core/commands/ls.c
> index 0eaf836..fcbb3da 100644
> --- a/grub-core/commands/ls.c
> +++ b/grub-core/commands/ls.c
> @@ -201,6 +201,10 @@ grub_ls_list_files (char *dirname, int longlist, int 
> all, int human)
>        if (grub_errno == GRUB_ERR_UNKNOWN_FS)
>       grub_errno = GRUB_ERR_NONE;
>
> +      /* Close device to prevent a double open in
> +         grub_normal_print_device_info. */
> +      grub_device_close (dev);
> +      dev = NULL;

Are you OK if I put above between "#ifdef GRUB_MACHINE_IEEE1275" and "#endif"?

Daniel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]