summaryrefslogtreecommitdiff
path: root/btrfs-corrupt-block.c
diff options
context:
space:
mode:
Diffstat (limited to 'btrfs-corrupt-block.c')
-rw-r--r--btrfs-corrupt-block.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/btrfs-corrupt-block.c b/btrfs-corrupt-block.c
index 789cbc70..5e4ae72e 100644
--- a/btrfs-corrupt-block.c
+++ b/btrfs-corrupt-block.c
@@ -899,7 +899,11 @@ static int corrupt_item_nocow(struct btrfs_trans_handle *trans,
if (slot == 0)
del = 0;
/* Only accept valid eb */
- BUG_ON(!leaf->data || slot >= btrfs_header_nritems(leaf));
+ if (!leaf->data || slot >= btrfs_header_nritems(leaf)) {
+ error("invalid eb: no data or slot out of range: %d >= %d",
+ slot, btrfs_header_nritems(leaf));
+ return -EINVAL;
+ }
btrfs_item_key_to_cpu(leaf, &key, slot);
if (del) {
fprintf(stdout, "Deleting key and data [%llu, %u, %llu].\n",