On Mon, 4 Jul 2022 16:27:20 +0200, Lukas Czerner wrote: > Currently ext4 directory handling code implicitly assumes that the > directory blocks are always within the i_size. In fact ext4_append() > will attempt to allocate next directory block based solely on i_size and > the i_size is then appropriately increased after a successful > allocation. > > However, for this to work it requires i_size to be correct. If, for any > reason, the directory inode i_size is corrupted in a way that the > directory tree refers to a valid directory block past i_size, we could > end up corrupting parts of the directory tree structure by overwriting > already used directory blocks when modifying the directory. > > [...] Applied, thanks! [1/2] ext4: check if directory block is within i_size commit: 65d23bd6e76ae07cee50c24d1fbeea4044aa41e7 [2/2] ext4: make sure ext4_append() always allocates new block commit: 6d3ab9450ea5ec08882ab2f255827f1a39e300de Best regards, -- Theodore Ts'o <tytso@xxxxxxx>