lkml.org 
[lkml]   [2020]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 09/49] efivarfs: Replace invalid slashes with exclamation marks in dentries.
    Date
    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>
    Signed-off-by: dann frazier <dann.frazier@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

    --- a/fs/efivarfs/super.c
    +++ b/fs/efivarfs/super.c
    @@ -141,6 +141,9 @@ static int efivarfs_callback(efi_char16_

    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)

    \
     
     \ /
      Last update: 2020-10-31 12:36    [W:4.827 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site