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 <ebiggers@google.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fec3b1451d
commit
5de9e9dd18
|
@ -754,6 +754,12 @@ static int __f2fs_setxattr(struct inode *inode, int index,
|
||||||
memcpy(pval, value, size);
|
memcpy(pval, value, size);
|
||||||
last->e_value_size = cpu_to_le16(size);
|
last->e_value_size = cpu_to_le16(size);
|
||||||
new_hsize += newsize;
|
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);
|
error = write_all_xattrs(inode, new_hsize, base_addr, ipage);
|
||||||
|
|
Loading…
Reference in New Issue