]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
udf: Zero udf name padding
authorJan Kara <jack@suse.cz>
Wed, 25 Jan 2023 15:49:00 +0000 (16:49 +0100)
committerJan Kara <jack@suse.cz>
Thu, 26 Jan 2023 15:46:32 +0000 (16:46 +0100)
Padding of name in the directory entry needs to be zeroed out. Fix it.

Signed-off-by: Jan Kara <jack@suse.cz>
fs/udf/directory.c

index 18a1514871fe2977f9c45127fdef92c172a6cdcc..e8cf13214c8c54361f18bdd7b6bbce4249a4b624 100644 (file)
@@ -367,6 +367,8 @@ static void udf_copy_fi_to_bufs(char *buf1, int len1, char *buf2, int len2,
        int fioff = off;
        int crcoff = off + sizeof(struct tag);
        unsigned int crclen = udf_dir_entry_len(fi) - sizeof(struct tag);
+       char zeros[UDF_NAME_PAD] = {};
+       int endoff = off + udf_dir_entry_len(fi);
 
        udf_copy_to_bufs(buf1, len1, buf2, len2, off, fi,
                         sizeof(struct fileIdentDesc));
@@ -375,9 +377,13 @@ static void udf_copy_fi_to_bufs(char *buf1, int len1, char *buf2, int len2,
                udf_copy_to_bufs(buf1, len1, buf2, len2, off, impuse,
                                 le16_to_cpu(fi->lengthOfImpUse));
        off += le16_to_cpu(fi->lengthOfImpUse);
-       if (name)
+       if (name) {
                udf_copy_to_bufs(buf1, len1, buf2, len2, off, name,
                                 fi->lengthFileIdent);
+               off += fi->lengthFileIdent;
+               udf_copy_to_bufs(buf1, len1, buf2, len2, off, zeros,
+                                endoff - off);
+       }
 
        crc = udf_crc_fi_bufs(buf1, len1, buf2, len2, crcoff, crclen);
        fi->descTag.descCRC = cpu_to_le16(crc);