[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: |
Fri, 24 Nov 2017 16:24:51 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Nov 23, 2017 at 04:19:40PM +0100, Daniel Kiper wrote:
> On Tue, Nov 21, 2017 at 03:24:38PM -0700, Eric Snowberg wrote:
> > > On Nov 21, 2017, at 6:20 AM, Daniel Kiper <address@hidden> wrote:
> > > 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”?
> >
> > I suppose you could add that.
>
> Great!
>
> > Is this patch causing problems on a different platform?
>
> Nope, but I would like to be on safe side. So, I will add it and push.
Pushed!
Daniel