Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ext4: fix transposition typo in format string

According to C99, %*.s means the same as %*.0s, in other words, print as
many spaces as the field width argument says and effectively ignore the
string argument. That is certainly not what was meant here. The kernel's
printf implementation, however, treats it as if the . was not there,
i.e. as %*s. I don't know if de->name is nul-terminated or not, but in
any case I'm guessing the intention was to use de->name_len as precision
instead of field width.

[ Note: this is debugging code which is commented out, so this is not
security issue; a developer would have to explicitly enable
INLINE_DIR_DEBUG before this would be an issue. ]

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>

authored by

Rasmus Villemoes and committed by
Theodore Ts'o
80cfb71e 7071b715

+1 -1
+1 -1
fs/ext4/inline.c
··· 972 972 offset = 0; 973 973 while ((void *)de < dlimit) { 974 974 de_len = ext4_rec_len_from_disk(de->rec_len, inline_size); 975 - trace_printk("de: off %u rlen %u name %*.s nlen %u ino %u\n", 975 + trace_printk("de: off %u rlen %u name %.*s nlen %u ino %u\n", 976 976 offset, de_len, de->name_len, de->name, 977 977 de->name_len, le32_to_cpu(de->inode)); 978 978 if (ext4_check_dir_entry(dir, NULL, de, bh,