[lvm-devel] master - [radix-tree] Fix bug in _degrade_to_n16

Joe Thornber thornber at sourceware.org
Thu Sep 20 13:48:53 UTC 2018


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=ebd2d7773f2531bd5dddb97c061ddb74af117844
Commit:        ebd2d7773f2531bd5dddb97c061ddb74af117844
Parent:        0ac7913c6a43c5bcfbba735652041a0eae4180c6
Author:        Joe Thornber <ejt at redhat.com>
AuthorDate:    Thu Sep 20 14:20:16 2018 +0100
Committer:     Joe Thornber <ejt at redhat.com>
CommitterDate: Thu Sep 20 14:20:16 2018 +0100

[radix-tree] Fix bug in _degrade_to_n16

Values were getting shuffled
---
 base/data-struct/radix-tree-adaptive.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/base/data-struct/radix-tree-adaptive.c b/base/data-struct/radix-tree-adaptive.c
index a657b2b..23e69f8 100644
--- a/base/data-struct/radix-tree-adaptive.c
+++ b/base/data-struct/radix-tree-adaptive.c
@@ -581,12 +581,11 @@ static void _degrade_to_n16(struct node48 *n48, struct value *result)
         for (i = 0; i < 256; i++) {
 	        if (n48->keys[i] < 48) {
 		        n16->keys[count] = i;
+		        n16->values[count] = n48->values[n48->keys[i]];
 		        count++;
 	        }
         }
 
-        memcpy(n16->values, n48->values, n48->nr_entries * sizeof(*n16->values));
-
         free(n48);
 
 	result->type = NODE16;




More information about the lvm-devel mailing list