From 429fe5baedf855a49b0c6015f8c7040e917bb1e2 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Thu, 14 Mar 2024 15:39:37 -0700 Subject: [PATCH] Fix some uses of uninitialized memory Introduced in ee36bda8f83e0754ea0417bc0594ffcc3a100c1f, unsurprisingly. --- ConflictSet.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ConflictSet.cpp b/ConflictSet.cpp index dde25fd..ceb3b71 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -899,6 +899,7 @@ void freeAndMakeCapacityAtLeast(Node *&self, int capacity, case Type_Node48: { auto *self48 = (Node48 *)self; auto *newSelf = allocators->node48.allocate(capacity); + memset(newSelf->index, -1, sizeof(newSelf->index)); memcpy((char *)newSelf + kNodeCopyBegin, (char *)self + kNodeCopyBegin, kNodeCopySize); memcpy(newSelf->partialKey(), self48->partialKey(), self->partialKeyLen); @@ -926,6 +927,9 @@ void freeAndMakeCapacityAtLeast(Node *&self, int capacity, case Type_Node256: { auto *self256 = (Node256 *)self; auto *newSelf = allocators->node256.allocate(capacity); + for (int i = 0; i < 256; ++i) { + newSelf->children[i].child = nullptr; + } memcpy((char *)newSelf + kNodeCopyBegin, (char *)self + kNodeCopyBegin, kNodeCopySize); memcpy(newSelf->partialKey(), self256->partialKey(), self->partialKeyLen);