diff options
author | Joe Thornber <ejt@redhat.com> | 2018-08-20 15:23:40 +0100 |
---|---|---|
committer | Joe Thornber <ejt@redhat.com> | 2018-08-20 15:23:40 +0100 |
commit | 8b05f1f230517aa42878aa160d94383ed0534c64 (patch) | |
tree | 1562c429679efcf2cae5ce8ee7eb66f70cea7cb2 /base | |
parent | 54668feaabead997cdf099c970999af667bcf274 (diff) | |
download | lvm2-8b05f1f230517aa42878aa160d94383ed0534c64.tar.gz |
radix-tree: Fix bug in remove_prefix()
Accidental decrement of the nr entries when a n256 didn't have the
entry in the first place.
Diffstat (limited to 'base')
-rw-r--r-- | base/data-struct/radix-tree.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/base/data-struct/radix-tree.c b/base/data-struct/radix-tree.c index 1d24dadf2..1eef1f896 100644 --- a/base/data-struct/radix-tree.c +++ b/base/data-struct/radix-tree.c @@ -907,6 +907,9 @@ static bool _remove_subtree(struct radix_tree *rt, struct value *root, uint8_t * case NODE256: n256 = root->value.ptr; + if (n256->values[*kb].type == UNSET) + return true; // No entries + r = _remove_subtree(rt, n256->values + (*kb), kb + 1, ke, count); if (r && n256->values[*kb].type == UNSET) { n256->nr_entries--; |