[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] ls: prevent double open
From: |
Eric Snowberg |
Subject: |
Re: [PATCH v2] ls: prevent double open |
Date: |
Tue, 21 Nov 2017 15:24:38 -0700 |
> 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. Is this patch causing problems on a different
platform?