From 7b83595dbd6b6cbd8c449415e2e6dfaca0a80975 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Wed, 7 Sep 2016 16:09:11 +0200 Subject: [PATCH] btrfs-progs: corrupt-block: improved error handling in corrupt_item_nocow Signed-off-by: David Sterba --- btrfs-corrupt-block.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/btrfs-corrupt-block.c b/btrfs-corrupt-block.c index 789cbc7..5e4ae72 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", -- 2.7.4