diff mbox series

grub: fs/fat: Don't error when mtime is 0

Message ID 20240103123052.711083-1-liu.ming50@gmail.com
State Accepted, archived
Commit 51eab4bb0cae46c9c32d28986eb97badf47594b7
Headers show
Series grub: fs/fat: Don't error when mtime is 0 | expand

Commit Message

Ming Liu Jan. 3, 2024, 12:30 p.m. UTC
From: Ming Liu <liu.ming50@gmail.com>

A issue was found when I run "runqemu genericx86-64 ovmf", grub failed
to boot, it's a known issue has been fixed in grub upstream, backport
the fix.

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
---
 ...1-fs-fat-Don-t-error-when-mtime-is-0.patch | 70 +++++++++++++++++++
 meta/recipes-bsp/grub/grub2.inc               |  1 +
 2 files changed, 71 insertions(+)
 create mode 100644 meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch

Comments

Alexandre Belloni Jan. 4, 2024, 9:49 a.m. UTC | #1
Hello,

Your patch has a declared charset of 'y' which is not a thing and git am
fails with:

error: cannot convert from y to UTF-8
fatal: could not parse patch

You got the following prompt:

The following files are 8bit, but do not declare a Content-Transfer-Encoding.
something.patch
Which 8bit encoding should I declare [UTF-8]?

At that point, you pressed y but you should simply press enter. Please
resend.


On 03/01/2024 13:30:52+0100, Ming Liu wrote:
> From: Ming Liu <liu.ming50@gmail.com>
> 
> A issue was found when I run "runqemu genericx86-64 ovmf", grub failed
> to boot, it's a known issue has been fixed in grub upstream, backport
> the fix.
> 
> Signed-off-by: Ming Liu <liu.ming50@gmail.com>
> ---
>  ...1-fs-fat-Don-t-error-when-mtime-is-0.patch | 70 +++++++++++++++++++
>  meta/recipes-bsp/grub/grub2.inc               |  1 +
>  2 files changed, 71 insertions(+)
>  create mode 100644 meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
> 
> diff --git a/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch b/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
> new file mode 100644
> index 0000000000..a5fbd58f46
> --- /dev/null
> +++ b/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
> @@ -0,0 +1,70 @@
> +From e43f3d93b28cce852c110c7a8e40d8311bcd8bb1 Mon Sep 17 00:00:00 2001
> +From: Robbie Harwood <rharwood@redhat.com>
> +Date: Fri, 15 Jul 2022 16:13:02 -0400
> +Subject: [PATCH] fs/fat: Don't error when mtime is 0
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +In the wild, we occasionally see valid ESPs where some file modification
> +times are 0. For instance:
> +
> +    ├── [Dec 31  1979]  EFI
> +    │   ├── [Dec 31  1979]  BOOT
> +    │   │   ├── [Dec 31  1979]  BOOTX64.EFI
> +    │   │   └── [Dec 31  1979]  fbx64.efi
> +    │   └── [Jun 27 02:41]  fedora
> +    │       ├── [Dec 31  1979]  BOOTX64.CSV
> +    │       ├── [Dec 31  1979]  fonts
> +    │       ├── [Mar 14 03:35]  fw
> +    │       │   ├── [Mar 14 03:35]  fwupd-359c1169-abd6-4a0d-8bce-e4d4713335c1.cap
> +    │       │   ├── [Mar 14 03:34]  fwupd-9d255c4b-2d88-4861-860d-7ee52ade9463.cap
> +    │       │   └── [Mar 14 03:34]  fwupd-b36438d8-9128-49d2-b280-487be02d948b.cap
> +    │       ├── [Dec 31  1979]  fwupdx64.efi
> +    │       ├── [May 10 10:47]  grub.cfg
> +    │       ├── [Jun  3 12:38]  grub.cfg.new.new
> +    │       ├── [May 10 10:41]  grub.cfg.old
> +    │       ├── [Jun 27 02:41]  grubenv
> +    │       ├── [Dec 31  1979]  grubx64.efi
> +    │       ├── [Dec 31  1979]  mmx64.efi
> +    │       ├── [Dec 31  1979]  shim.efi
> +    │       ├── [Dec 31  1979]  shimx64.efi
> +    │       └── [Dec 31  1979]  shimx64-fedora.efi
> +    └── [Dec 31  1979]  FSCK0000.REC
> +
> +    5 directories, 17 files
> +
> +This causes grub-probe failure, which in turn causes grub-mkconfig
> +failure. They are valid filesystems that appear intact, and the Linux
> +FAT stack is able to mount and manipulate them without complaint.
> +
> +The check for mtime of 0 has been present since
> +20def1a3c3952982395cd7c3ea7e78638527962b (fat: support file
> +modification times).
> +
> +Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/grub.git/commit/?id=e43f3d93b28cce852c110c7a8e40d8311bcd8bb1]
> +
> +Signed-off-by: Robbie Harwood <rharwood@redhat.com>
> +Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
> +Signed-off-by: Ming Liu <liu.ming50@gmail.com>
> +---
> + grub-core/fs/fat.c | 3 ---
> + 1 file changed, 3 deletions(-)
> +
> +diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c
> +index 0951b2e63..c5efed724 100644
> +--- a/grub-core/fs/fat.c
> ++++ b/grub-core/fs/fat.c
> +@@ -1027,9 +1027,6 @@ grub_fat_dir (grub_device_t device, const char *path, grub_fs_dir_hook_t hook,
> + 					  grub_le_to_cpu16 (ctxt.dir.w_date),
> + 					  &info.mtime);
> + #endif
> +-      if (info.mtimeset == 0)
> +-	grub_error (GRUB_ERR_OUT_OF_RANGE,
> +-		    "invalid modification timestamp for %s", path);
> + 
> +       if (hook (ctxt.filename, &info, hook_data))
> + 	break;
> +-- 
> +2.34.1
> +
> diff --git a/meta/recipes-bsp/grub/grub2.inc b/meta/recipes-bsp/grub/grub2.inc
> index f594e7d3a4..1215b24668 100644
> --- a/meta/recipes-bsp/grub/grub2.inc
> +++ b/meta/recipes-bsp/grub/grub2.inc
> @@ -44,6 +44,7 @@ SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
>             file://0001-fs-ext2-Ignore-checksum-seed-incompat-feature.patch \
>             file://CVE-2023-4692.patch \
>             file://CVE-2023-4693.patch \
> +           file://0001-fs-fat-Don-t-error-when-mtime-is-0.patch \
>  "
>  
>  SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f"
> -- 
> 2.34.1
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#193286): https://lists.openembedded.org/g/openembedded-core/message/193286
> Mute This Topic: https://lists.openembedded.org/mt/103500707/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Ming Liu Jan. 4, 2024, 10:04 a.m. UTC | #2
Hi, Alexandre:

Sorry, my bad, will resend it.

//Ming Liu

Alexandre Belloni <alexandre.belloni@bootlin.com> 於 2024年1月4日 週四 上午10:49寫道:

> Hello,
>
> Your patch has a declared charset of 'y' which is not a thing and git am
> fails with:
>
> error: cannot convert from y to UTF-8
> fatal: could not parse patch
>
> You got the following prompt:
>
> The following files are 8bit, but do not declare a
> Content-Transfer-Encoding.
> something.patch
> Which 8bit encoding should I declare [UTF-8]?
>
> At that point, you pressed y but you should simply press enter. Please
> resend.
>
>
> On 03/01/2024 13:30:52+0100, Ming Liu wrote:
> > From: Ming Liu <liu.ming50@gmail.com>
> >
> > A issue was found when I run "runqemu genericx86-64 ovmf", grub failed
> > to boot, it's a known issue has been fixed in grub upstream, backport
> > the fix.
> >
> > Signed-off-by: Ming Liu <liu.ming50@gmail.com>
> > ---
> >  ...1-fs-fat-Don-t-error-when-mtime-is-0.patch | 70 +++++++++++++++++++
> >  meta/recipes-bsp/grub/grub2.inc               |  1 +
> >  2 files changed, 71 insertions(+)
> >  create mode 100644
> meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
> >
> > diff --git
> a/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
> b/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
> > new file mode 100644
> > index 0000000000..a5fbd58f46
> > --- /dev/null
> > +++
> b/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
> > @@ -0,0 +1,70 @@
> > +From e43f3d93b28cce852c110c7a8e40d8311bcd8bb1 Mon Sep 17 00:00:00 2001
> > +From: Robbie Harwood <rharwood@redhat.com>
> > +Date: Fri, 15 Jul 2022 16:13:02 -0400
> > +Subject: [PATCH] fs/fat: Don't error when mtime is 0
> > +MIME-Version: 1.0
> > +Content-Type: text/plain; charset=UTF-8
> > +Content-Transfer-Encoding: 8bit
> > +
> > +In the wild, we occasionally see valid ESPs where some file modification
> > +times are 0. For instance:
> > +
> > +    ├── [Dec 31  1979]  EFI
> > +    │   ├── [Dec 31  1979]  BOOT
> > +    │   │   ├── [Dec 31  1979]  BOOTX64.EFI
> > +    │   │   └── [Dec 31  1979]  fbx64.efi
> > +    │   └── [Jun 27 02:41]  fedora
> > +    │       ├── [Dec 31  1979]  BOOTX64.CSV
> > +    │       ├── [Dec 31  1979]  fonts
> > +    │       ├── [Mar 14 03:35]  fw
> > +    │       │   ├── [Mar 14 03:35]
> fwupd-359c1169-abd6-4a0d-8bce-e4d4713335c1.cap
> > +    │       │   ├── [Mar 14 03:34]
> fwupd-9d255c4b-2d88-4861-860d-7ee52ade9463.cap
> > +    │       │   └── [Mar 14 03:34]
> fwupd-b36438d8-9128-49d2-b280-487be02d948b.cap
> > +    │       ├── [Dec 31  1979]  fwupdx64.efi
> > +    │       ├── [May 10 10:47]  grub.cfg
> > +    │       ├── [Jun  3 12:38]  grub.cfg.new.new
> > +    │       ├── [May 10 10:41]  grub.cfg.old
> > +    │       ├── [Jun 27 02:41]  grubenv
> > +    │       ├── [Dec 31  1979]  grubx64.efi
> > +    │       ├── [Dec 31  1979]  mmx64.efi
> > +    │       ├── [Dec 31  1979]  shim.efi
> > +    │       ├── [Dec 31  1979]  shimx64.efi
> > +    │       └── [Dec 31  1979]  shimx64-fedora.efi
> > +    └── [Dec 31  1979]  FSCK0000.REC
> > +
> > +    5 directories, 17 files
> > +
> > +This causes grub-probe failure, which in turn causes grub-mkconfig
> > +failure. They are valid filesystems that appear intact, and the Linux
> > +FAT stack is able to mount and manipulate them without complaint.
> > +
> > +The check for mtime of 0 has been present since
> > +20def1a3c3952982395cd7c3ea7e78638527962b (fat: support file
> > +modification times).
> > +
> > +Upstream-Status: Backport [
> https://git.savannah.gnu.org/cgit/grub.git/commit/?id=e43f3d93b28cce852c110c7a8e40d8311bcd8bb1
> ]
> > +
> > +Signed-off-by: Robbie Harwood <rharwood@redhat.com>
> > +Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
> > +Signed-off-by: Ming Liu <liu.ming50@gmail.com>
> > +---
> > + grub-core/fs/fat.c | 3 ---
> > + 1 file changed, 3 deletions(-)
> > +
> > +diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c
> > +index 0951b2e63..c5efed724 100644
> > +--- a/grub-core/fs/fat.c
> > ++++ b/grub-core/fs/fat.c
> > +@@ -1027,9 +1027,6 @@ grub_fat_dir (grub_device_t device, const char
> *path, grub_fs_dir_hook_t hook,
> > +                                       grub_le_to_cpu16
> (ctxt.dir.w_date),
> > +                                       &info.mtime);
> > + #endif
> > +-      if (info.mtimeset == 0)
> > +-    grub_error (GRUB_ERR_OUT_OF_RANGE,
> > +-                "invalid modification timestamp for %s", path);
> > +
> > +       if (hook (ctxt.filename, &info, hook_data))
> > +     break;
> > +--
> > +2.34.1
> > +
> > diff --git a/meta/recipes-bsp/grub/grub2.inc
> b/meta/recipes-bsp/grub/grub2.inc
> > index f594e7d3a4..1215b24668 100644
> > --- a/meta/recipes-bsp/grub/grub2.inc
> > +++ b/meta/recipes-bsp/grub/grub2.inc
> > @@ -44,6 +44,7 @@ SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
> >
>  file://0001-fs-ext2-Ignore-checksum-seed-incompat-feature.patch \
> >             file://CVE-2023-4692.patch \
> >             file://CVE-2023-4693.patch \
> > +           file://0001-fs-fat-Don-t-error-when-mtime-is-0.patch \
> >  "
> >
> >  SRC_URI[sha256sum] =
> "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f"
> > --
> > 2.34.1
> >
>
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#193286):
> https://lists.openembedded.org/g/openembedded-core/message/193286
> > Mute This Topic: https://lists.openembedded.org/mt/103500707/3617179
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alexandre.belloni@bootlin.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
diff mbox series

Patch

diff --git a/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch b/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
new file mode 100644
index 0000000000..a5fbd58f46
--- /dev/null
+++ b/meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
@@ -0,0 +1,70 @@ 
+From e43f3d93b28cce852c110c7a8e40d8311bcd8bb1 Mon Sep 17 00:00:00 2001
+From: Robbie Harwood <rharwood@redhat.com>
+Date: Fri, 15 Jul 2022 16:13:02 -0400
+Subject: [PATCH] fs/fat: Don't error when mtime is 0
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In the wild, we occasionally see valid ESPs where some file modification
+times are 0. For instance:
+
+    ├── [Dec 31  1979]  EFI
+    │   ├── [Dec 31  1979]  BOOT
+    │   │   ├── [Dec 31  1979]  BOOTX64.EFI
+    │   │   └── [Dec 31  1979]  fbx64.efi
+    │   └── [Jun 27 02:41]  fedora
+    │       ├── [Dec 31  1979]  BOOTX64.CSV
+    │       ├── [Dec 31  1979]  fonts
+    │       ├── [Mar 14 03:35]  fw
+    │       │   ├── [Mar 14 03:35]  fwupd-359c1169-abd6-4a0d-8bce-e4d4713335c1.cap
+    │       │   ├── [Mar 14 03:34]  fwupd-9d255c4b-2d88-4861-860d-7ee52ade9463.cap
+    │       │   └── [Mar 14 03:34]  fwupd-b36438d8-9128-49d2-b280-487be02d948b.cap
+    │       ├── [Dec 31  1979]  fwupdx64.efi
+    │       ├── [May 10 10:47]  grub.cfg
+    │       ├── [Jun  3 12:38]  grub.cfg.new.new
+    │       ├── [May 10 10:41]  grub.cfg.old
+    │       ├── [Jun 27 02:41]  grubenv
+    │       ├── [Dec 31  1979]  grubx64.efi
+    │       ├── [Dec 31  1979]  mmx64.efi
+    │       ├── [Dec 31  1979]  shim.efi
+    │       ├── [Dec 31  1979]  shimx64.efi
+    │       └── [Dec 31  1979]  shimx64-fedora.efi
+    └── [Dec 31  1979]  FSCK0000.REC
+
+    5 directories, 17 files
+
+This causes grub-probe failure, which in turn causes grub-mkconfig
+failure. They are valid filesystems that appear intact, and the Linux
+FAT stack is able to mount and manipulate them without complaint.
+
+The check for mtime of 0 has been present since
+20def1a3c3952982395cd7c3ea7e78638527962b (fat: support file
+modification times).
+
+Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/grub.git/commit/?id=e43f3d93b28cce852c110c7a8e40d8311bcd8bb1]
+
+Signed-off-by: Robbie Harwood <rharwood@redhat.com>
+Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ grub-core/fs/fat.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c
+index 0951b2e63..c5efed724 100644
+--- a/grub-core/fs/fat.c
++++ b/grub-core/fs/fat.c
+@@ -1027,9 +1027,6 @@ grub_fat_dir (grub_device_t device, const char *path, grub_fs_dir_hook_t hook,
+ 					  grub_le_to_cpu16 (ctxt.dir.w_date),
+ 					  &info.mtime);
+ #endif
+-      if (info.mtimeset == 0)
+-	grub_error (GRUB_ERR_OUT_OF_RANGE,
+-		    "invalid modification timestamp for %s", path);
+ 
+       if (hook (ctxt.filename, &info, hook_data))
+ 	break;
+-- 
+2.34.1
+
diff --git a/meta/recipes-bsp/grub/grub2.inc b/meta/recipes-bsp/grub/grub2.inc
index f594e7d3a4..1215b24668 100644
--- a/meta/recipes-bsp/grub/grub2.inc
+++ b/meta/recipes-bsp/grub/grub2.inc
@@ -44,6 +44,7 @@  SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
            file://0001-fs-ext2-Ignore-checksum-seed-incompat-feature.patch \
            file://CVE-2023-4692.patch \
            file://CVE-2023-4693.patch \
+           file://0001-fs-fat-Don-t-error-when-mtime-is-0.patch \
 "
 
 SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f"