fs/ntfs3: Fix endian conversion in ni_fname_name
authorThomas Kühnel <thomas.kuehnel@avm.de>
Tue, 7 Dec 2021 10:24:53 +0000 (11:24 +0100)
committerKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
Mon, 14 Nov 2022 16:50:40 +0000 (19:50 +0300)
ni_fname_name called ntfs_cmp_names_cpu which assumes that the first
string is in CPU byte order and the second one in little endian.
In this case both strings are little endian so ntfs_cmp_names is the
correct function to call.

Signed-off-by: Thomas Kühnel <thomas.kuehnel@avm.de>
Reviewed-by: Nicolas Schier <n.schier@avm.de>
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
fs/ntfs3/frecord.c

index 3b309b9a5e29367cfe8766465eb31755be076bfb..039247ab5b0b72c72fb9a48fefefab8742f1db8c 100644 (file)
@@ -1645,6 +1645,7 @@ struct ATTR_FILE_NAME *ni_fname_name(struct ntfs_inode *ni,
 {
        struct ATTRIB *attr = NULL;
        struct ATTR_FILE_NAME *fname;
+       struct le_str *fns;
 
        if (le)
                *le = NULL;
@@ -1668,7 +1669,8 @@ next:
        if (uni->len != fname->name_len)
                goto next;
 
-       if (ntfs_cmp_names_cpu(uni, (struct le_str *)&fname->name_len, NULL,
+       fns = (struct le_str *)&fname->name_len;
+       if (ntfs_cmp_names(uni->name, uni->len, fns->name, fns->len, NULL,
                               false))
                goto next;