ext4: avoid writing unitialized memory to disk in EA inodes
[ Upstream commit65121eff3e] If the extended attribute size is not a multiple of block size, the last block in the EA inode will have uninitialized tail which will get written to disk. We will never expose the data to userspace but still this is not a good practice so just zero out the tail of the block as it isn't going to cause a noticeable performance overhead. Fixes:e50e5129f3("ext4: xattr-in-inode support") Reported-by: syzbot+9c1fe13fcb51574b249b@syzkaller.appspotmail.com Reported-by: Hugh Dickins <hughd@google.com> Signed-off-by: Jan Kara <jack@suse.cz> Link: https://patch.msgid.link/20240613150234.25176-1-jack@suse.cz Signed-off-by: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4be759d6d5
commit
282e8d4e9d
@@ -1420,6 +1420,12 @@ retry:
|
||||
goto out;
|
||||
|
||||
memcpy(bh->b_data, buf, csize);
|
||||
/*
|
||||
* Zero out block tail to avoid writing uninitialized memory
|
||||
* to disk.
|
||||
*/
|
||||
if (csize < blocksize)
|
||||
memset(bh->b_data + csize, 0, blocksize - csize);
|
||||
set_buffer_uptodate(bh);
|
||||
ext4_handle_dirty_metadata(handle, ea_inode, bh);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user