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 <[email protected]> > --- > 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 _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
