[PATCH] erofs: fix extended inode could cross boundary

Chao Yu yuchao0 at huawei.com
Mon Aug 3 22:26:22 AEST 2020


On 2020/7/30 1:58, Gao Xiang wrote:
> Each ondisk inode should be aligned with inode slot boundary
> (32-byte alignment) because of nid calculation formula, so all
> compact inodes (32 byte) cannot across page boundary. However,
> extended inode is now 64-byte form, which can across page boundary
> in principle if the location is specified on purpose, although
> it's hard to be generated by mkfs due to the allocation policy
> and rarely used by Android use case now mainly for > 4GiB files.
> 
> For now, only two fields `i_ctime_nsec` and `i_nlink' couldn't
> be read from disk properly and cause out-of-bound memory read
> with random value.
> 
> Let's fix now.
> 
> Fixes: 431339ba9042 ("staging: erofs: add inode operations")
> Cc: <stable at vger.kernel.org> # 4.19+
> Signed-off-by: Gao Xiang <hsiangkao at redhat.com>

Reviewed-by: Chao Yu <yuchao0 at huawei.com>

Thanks,


More information about the Linux-erofs mailing list