grub-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 1/1] fat: fix listing the root directory


From: Vladimir 'phcoder' Serbinenko
Subject: Re: [PATCH 1/1] fat: fix listing the root directory
Date: Sat, 22 Jan 2022 10:07:28 +0100

Inserting dummy date of 1970-1-1 is a bad idea. Can we rather allow
timestamp to be missing instead of throwing error?

On Fri, Jan 21, 2022 at 8:33 PM Heinrich Schuchardt
<heinrich.schuchardt@canonical.com> wrote:
>
> ls / for a FAT partition leads to
>
>    error: invalid modification timestamp for /.
>
> Not all entries of the directory are displayed.
>
> Linux never updates the modification timestamp of the /. directory entry.
> The FAT specification allows the access and creation date fields to be
> zero.
>
> We should follow Linux and render initial FAT timestamps as start of
> the epoch.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> ---
>  grub-core/fs/fat.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c
> index dd82e4ee3..35ff0b27c 100644
> --- a/grub-core/fs/fat.c
> +++ b/grub-core/fs/fat.c
> @@ -901,6 +901,18 @@ grub_fat_timestamp (grub_uint16_t time, grub_uint16_t 
> date, grub_int64_t *nix) {
>      .second = (time & 0x001F) * 2,
>    };
>
> +  /*
> +   * The modification time of the root directory is never set by Linux.
> +   * Creation and access time are optional and can be zero.
> +   * Follow Linux and render FAT initial timestamps as the start of the 
> epoch.
> +   */
> +  if (date == 0 && time == 0)
> +    {
> +      datetime.year = 1970;
> +      datetime.month = 1;
> +      datetime.day = 1;
> +    }
> +
>    /* The conversion below allows seconds=60, so don't trust its validation. 
> */
>    if ((time & 0x1F) > 29)
>      return 0;
> --
> 2.33.1
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel



-- 
Regards
Vladimir 'phcoder' Serbinenko



reply via email to

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