fs/ext2: Missing error check in ext2_inode_remove_blocks

Don't assume that get_level_offsets will succeed.

Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Keith Packard 2025-06-06 11:36:13 -07:00 committed by Henrik Brix Andersen
parent eb351f05fe
commit f50ee8c1d3

View File

@ -669,6 +669,10 @@ int64_t ext2_inode_remove_blocks(struct ext2_inode *inode, uint32_t first)
max_lvl = get_level_offsets(inode->i_fs, first, offsets);
if (max_lvl < 0) {
return max_lvl;
}
if (all_zero(&offsets[1], max_lvl)) {
/* The first block to remove is either:
* - one of the first 12 blocks in the indode