• Jan Kara's avatar
    libext2fs: provide functions to safely access name_len and file_type · 70f4632b
    Jan Kara authored
    
    
    Accessing name_len (and file_type) in ext4_dir_entry structure is
    somewhat problematic because on big endian architecture we need to now
    whether we are really dealing with ext4_dir_entry (which has u16
    name_len which needs byte swapping) or ext4_dir_entry_2 (which has u8
    name_len which must not be byte swapped).
    
    Currently the code is somewhat surprising and name_len is always
    treated as u16 and byte swapped (flag EXT2_DIRBLOCK_V2_STRUCT isn't
    ever used) and then masking of name_len is used to access real
    name_len or file_type. Doing things this way in applications using
    libext2fs is unexpected to say the least (more natural is to type
    struct ext4_dir_entry * to struct ext4_dir_entry_2 * but that gives
    wrong results on big endian architectures. So provide helper functions
    that give endian-safe access to these fields. Also convert users in
    e2fsprogs to use these functions.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    70f4632b
lookup.c 1.44 KB