From: Eric Biggers Date: Tue, 7 Nov 2023 04:44:34 +0000 (-0800) Subject: f2fs: explicitly null-terminate the xattr list X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=32a6cfc67675ee96fe107aeed5af9776fec63f11;p=users%2Fdwmw2%2Flinux.git f2fs: explicitly null-terminate the xattr list commit e26b6d39270f5eab0087453d9b544189a38c8564 upstream. When setting an xattr, explicitly null-terminate the xattr list. This eliminates the fragile assumption that the unused xattr space is always zeroed. Signed-off-by: Eric Biggers Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c index 797ac505a075a..1a18936bc583b 100644 --- a/fs/f2fs/xattr.c +++ b/fs/f2fs/xattr.c @@ -745,6 +745,12 @@ static int __f2fs_setxattr(struct inode *inode, int index, memcpy(pval, value, size); last->e_value_size = cpu_to_le16(size); new_hsize += newsize; + /* + * Explicitly add the null terminator. The unused xattr space + * is supposed to always be zeroed, which would make this + * unnecessary, but don't depend on that. + */ + *(u32 *)((u8 *)last + newsize) = 0; } error = write_all_xattrs(inode, new_hsize, base_addr, ipage);