Messages in this thread | | | Date | Thu, 1 Dec 2022 11:00:58 -0500 | From | "Theodore Ts'o" <> | 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
| |