[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y4jPuoJsW5+t9UUn@mit.edu>
Date: Thu, 1 Dec 2022 11:00:58 -0500
From: "Theodore Ts'o" <tytso@....edu>
To: Ye Bin <yebin@...weicloud.com>
Cc: adilger.kernel@...ger.ca, linux-ext4@...r.kernel.org,
linux-kernel@...r.kernel.org, jack@...e.cz,
Ye Bin <yebin10@...wei.com>,
syzbot+4d99a966fd74bdeeec36@...kaller.appspotmail.com
Subject: Re: [PATCH v2] ext4: fix WARNING in ext4_expand_extra_isize_ea
On Thu, Dec 01, 2022 at 10:59:23PM +0800, Ye Bin wrote:
>
> Reason is allocate 16M memory by kmalloc, but MAX_ORDER is 11, kmalloc
> can allocate maxium size memory is 4M.
> XATTR_SIZE_MAX is currently 64k, but EXT4_XATTR_SIZE_MAX is '(1 << 24)',
> so 'ext4_xattr_check_entries()' regards this length as legal. Then trigger
> warning in 'ext4_xattr_move_to_block()'.
> To solve above issue, according to Jan Kara's suggestion use kvmalloc()
> to allocate memory in ext4_xattr_move_to_block().
See my comment to the v1 version of the patch. I suspect the real
problem is that the e_value_size is completely bogus, and we should
have checked it much earlier in the stack call trace, via a call to
xattr_check_inode().
Cheers,
- Ted
Powered by blists - more mailing lists