From 05011bf0d49d6b7e4ec5c2ac6c0181544f3a5b85 Mon Sep 17 00:00:00 2001 From: Christophe de Dinechin Date: Fri, 28 Apr 2017 11:50:23 +0200 Subject: btrfs-progs: check: prevent attempt to insert extent record with max_size==0 When this happens, we will trip a BUG_ON(end < start) in insert_state because in check_extent_refs, we use this max_size expecting it's not zero: set_extent_dirty(root->fs_info->excluded_extents, rec->start, rec->start + rec->max_size - 1); See https://bugzilla.redhat.com/show_bug.cgi?id=1435567 for an example where this scenario occurs. Signed-off-by: Christophe de Dinechin Signed-off-by: David Sterba --- cmds-check.c | 1 + 1 file changed, 1 insertion(+) (limited to 'cmds-check.c') diff --git a/cmds-check.c b/cmds-check.c index e8251198..571bd4e2 100644 --- a/cmds-check.c +++ b/cmds-check.c @@ -6030,6 +6030,7 @@ static int add_extent_rec_nolookup(struct cache_tree *extent_cache, struct extent_record *rec; int ret = 0; + BUG_ON(tmpl->max_size == 0); rec = malloc(sizeof(*rec)); if (!rec) return -ENOMEM; -- cgit v1.2.3