[Top][All Lists]

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

Re: [PATCH] ls: prevent double open

From: Vladimir 'phcoder' Serbinenko
Subject: Re: [PATCH] ls: prevent double open
Date: Wed, 18 Oct 2017 16:32:19 +0000

On Mon, Oct 16, 2017, 22:11 Eric Snowberg <address@hidden> 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:
Why does it? Underlying firmware device should not be aware of how many times grub device is open. If it is and it causes bugs, then it's a bug in device driver

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>
 grub-core/commands/ls.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/grub-core/commands/ls.c b/grub-core/commands/ls.c
index 0eaf836..a7318ab 100644
--- a/grub-core/commands/ls.c
+++ b/grub-core/commands/ls.c
@@ -201,6 +201,8 @@ grub_ls_list_files (char *dirname, int longlist, int all, int human)
       if (grub_errno == GRUB_ERR_UNKNOWN_FS)
        grub_errno = GRUB_ERR_NONE;

+      grub_device_close (dev);
+      dev = NULL;
       grub_normal_print_device_info (device_name);
   else if (fs)

reply via email to

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