summaryrefslogtreecommitdiff
path: root/ext2fs/balloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext2fs/balloc.c')
-rw-r--r--ext2fs/balloc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ext2fs/balloc.c b/ext2fs/balloc.c
index 14c18b5d..fc09c0d1 100644
--- a/ext2fs/balloc.c
+++ b/ext2fs/balloc.c
@@ -63,6 +63,10 @@ ext2_free_blocks (block_t block, unsigned long count)
unsigned long i;
struct ext2_group_desc *gdp;
+ /* Trap trying to free superblock, block group descriptor table, or beyond the end */
+ assert_backtrace (block >= group_desc_block_end
+ && block < store->size >> log2_block_size);
+
pthread_spin_lock (&global_lock);
if (block < le32toh (sblock->s_first_data_block) ||
@@ -402,6 +406,10 @@ got_block:
pthread_spin_unlock (&global_lock);
alloc_sync (0);
+ /* Trap trying to allocate superblock, block group descriptor table, or beyond the end */
+ assert_backtrace (j >= group_desc_block_end
+ && j < store->size >> log2_block_size);
+
return j;
}