Browse Source

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>
pull/91566/head
Keith Packard 1 month ago committed by Henrik Brix Andersen
parent
commit
f50ee8c1d3
  1. 4
      subsys/fs/ext2/ext2_diskops.c

4
subsys/fs/ext2/ext2_diskops.c

@ -669,6 +669,10 @@ int64_t ext2_inode_remove_blocks(struct ext2_inode *inode, uint32_t first) @@ -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

Loading…
Cancel
Save