linux-efi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4.4-5.9] efivarfs: Replace invalid slashes with exclamation marks in dentries.
@ 2020-10-29 17:54 dann frazier
  2020-10-29 19:19 ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: dann frazier @ 2020-10-29 17:54 UTC (permalink / raw)
  To: stable
  Cc: Michael Schaller, Ard Biesheuvel, Matthew Garrett, Jeremy Kerr,
	linux-efi

From: Michael Schaller <misch@google.com>

commit 336af6a4686d885a067ecea8c3c3dd129ba4fc75 upstream

Without this patch efivarfs_alloc_dentry creates dentries with slashes in
their name if the respective EFI variable has slashes in its name. This in
turn causes EIO on getdents64, which prevents a complete directory listing
of /sys/firmware/efi/efivars/.

This patch replaces the invalid shlashes with exclamation marks like
kobject_set_name_vargs does for /sys/firmware/efi/vars/ to have consistently
named dentries under /sys/firmware/efi/vars/ and /sys/firmware/efi/efivars/.

Signed-off-by: Michael Schaller <misch@google.com>
Link: https://lore.kernel.org/r/20200925074502.150448-1-misch@google.com
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>

---

This addresses an issue that breaks Ubuntu installs on platforms that have
variable names as described above. One of our installers needs to sort
the BootOrder to keep BootCurrent at the front, but this fails when the
variable BootCurrent points at appears to not exist due to this issue.

Ref: https://bugs.launchpad.net/bugs/1899993

fs/efivarfs/super.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/efivarfs/super.c b/fs/efivarfs/super.c
index 28bb5689333a..15880a68faad 100644
--- a/fs/efivarfs/super.c
+++ b/fs/efivarfs/super.c
@@ -141,6 +141,9 @@ static int efivarfs_callback(efi_char16_t *name16, efi_guid_t vendor,
 
 	name[len + EFI_VARIABLE_GUID_LEN+1] = '\0';
 
+	/* replace invalid slashes like kobject_set_name_vargs does for /sys/firmware/efi/vars. */
+	strreplace(name, '/', '!');
+
 	inode = efivarfs_get_inode(sb, d_inode(root), S_IFREG | 0644, 0,
 				   is_removable);
 	if (!inode)
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 4.4-5.9] efivarfs: Replace invalid slashes with exclamation marks in dentries.
  2020-10-29 17:54 [PATCH 4.4-5.9] efivarfs: Replace invalid slashes with exclamation marks in dentries dann frazier
@ 2020-10-29 19:19 ` Greg KH
  2020-10-29 19:20   ` dann frazier
  0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2020-10-29 19:19 UTC (permalink / raw)
  To: dann frazier
  Cc: stable, Michael Schaller, Ard Biesheuvel, Matthew Garrett,
	Jeremy Kerr, linux-efi

On Thu, Oct 29, 2020 at 11:54:42AM -0600, dann frazier wrote:
> From: Michael Schaller <misch@google.com>
> 
> commit 336af6a4686d885a067ecea8c3c3dd129ba4fc75 upstream
> 
> Without this patch efivarfs_alloc_dentry creates dentries with slashes in
> their name if the respective EFI variable has slashes in its name. This in
> turn causes EIO on getdents64, which prevents a complete directory listing
> of /sys/firmware/efi/efivars/.
> 
> This patch replaces the invalid shlashes with exclamation marks like
> kobject_set_name_vargs does for /sys/firmware/efi/vars/ to have consistently
> named dentries under /sys/firmware/efi/vars/ and /sys/firmware/efi/efivars/.
> 
> Signed-off-by: Michael Schaller <misch@google.com>
> Link: https://lore.kernel.org/r/20200925074502.150448-1-misch@google.com
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>

Any reason you are not signing off on this?

:(


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 4.4-5.9] efivarfs: Replace invalid slashes with exclamation marks in dentries.
  2020-10-29 19:19 ` Greg KH
@ 2020-10-29 19:20   ` dann frazier
  2020-10-29 19:28     ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: dann frazier @ 2020-10-29 19:20 UTC (permalink / raw)
  To: Greg KH
  Cc: stable, Michael Schaller, Ard Biesheuvel, Matthew Garrett,
	Jeremy Kerr, linux-efi

On Thu, Oct 29, 2020 at 1:18 PM Greg KH <greg@kroah.com> wrote:
>
> On Thu, Oct 29, 2020 at 11:54:42AM -0600, dann frazier wrote:
> > From: Michael Schaller <misch@google.com>
> >
> > commit 336af6a4686d885a067ecea8c3c3dd129ba4fc75 upstream
> >
> > Without this patch efivarfs_alloc_dentry creates dentries with slashes in
> > their name if the respective EFI variable has slashes in its name. This in
> > turn causes EIO on getdents64, which prevents a complete directory listing
> > of /sys/firmware/efi/efivars/.
> >
> > This patch replaces the invalid shlashes with exclamation marks like
> > kobject_set_name_vargs does for /sys/firmware/efi/vars/ to have consistently
> > named dentries under /sys/firmware/efi/vars/ and /sys/firmware/efi/efivars/.
> >
> > Signed-off-by: Michael Schaller <misch@google.com>
> > Link: https://lore.kernel.org/r/20200925074502.150448-1-misch@google.com
> > Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
>
> Any reason you are not signing off on this?

No, sorry:

Signed-off-by: dann frazier <dann.frazier@canonical.com>

Easier if I send a v2?

  -dann

> :(
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 4.4-5.9] efivarfs: Replace invalid slashes with exclamation marks in dentries.
  2020-10-29 19:20   ` dann frazier
@ 2020-10-29 19:28     ` Greg KH
  0 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2020-10-29 19:28 UTC (permalink / raw)
  To: dann frazier
  Cc: stable, Michael Schaller, Ard Biesheuvel, Matthew Garrett,
	Jeremy Kerr, linux-efi

On Thu, Oct 29, 2020 at 01:20:06PM -0600, dann frazier wrote:
> On Thu, Oct 29, 2020 at 1:18 PM Greg KH <greg@kroah.com> wrote:
> >
> > On Thu, Oct 29, 2020 at 11:54:42AM -0600, dann frazier wrote:
> > > From: Michael Schaller <misch@google.com>
> > >
> > > commit 336af6a4686d885a067ecea8c3c3dd129ba4fc75 upstream
> > >
> > > Without this patch efivarfs_alloc_dentry creates dentries with slashes in
> > > their name if the respective EFI variable has slashes in its name. This in
> > > turn causes EIO on getdents64, which prevents a complete directory listing
> > > of /sys/firmware/efi/efivars/.
> > >
> > > This patch replaces the invalid shlashes with exclamation marks like
> > > kobject_set_name_vargs does for /sys/firmware/efi/vars/ to have consistently
> > > named dentries under /sys/firmware/efi/vars/ and /sys/firmware/efi/efivars/.
> > >
> > > Signed-off-by: Michael Schaller <misch@google.com>
> > > Link: https://lore.kernel.org/r/20200925074502.150448-1-misch@google.com
> > > Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
> >
> > Any reason you are not signing off on this?
> 
> No, sorry:
> 
> Signed-off-by: dann frazier <dann.frazier@canonical.com>
> 
> Easier if I send a v2?

Nah, I can take that, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-10-29 19:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-29 17:54 [PATCH 4.4-5.9] efivarfs: Replace invalid slashes with exclamation marks in dentries dann frazier
2020-10-29 19:19 ` Greg KH
2020-10-29 19:20   ` dann frazier
2020-10-29 19:28     ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).