mirror of
https://github.com/monero-project/monero.git
synced 2024-10-01 11:49:47 -04:00
unit_tests: fix accessing invalid memory in tree_hash test
This commit is contained in:
parent
9750e1fa10
commit
7f3e31d797
@ -105,6 +105,7 @@ TEST(Crypto, tree_branch)
|
|||||||
{
|
{
|
||||||
crypto::hash inputs[6];
|
crypto::hash inputs[6];
|
||||||
crypto::hash branch[8];
|
crypto::hash branch[8];
|
||||||
|
crypto::hash branch_1[8 + 1];
|
||||||
crypto::hash root, root2;
|
crypto::hash root, root2;
|
||||||
size_t depth;
|
size_t depth;
|
||||||
uint32_t path, path2;
|
uint32_t path, path2;
|
||||||
@ -289,12 +290,16 @@ TEST(Crypto, tree_branch)
|
|||||||
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[5].data, root.data, (const char(*)[32])branch, depth, path));
|
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[5].data, root.data, (const char(*)[32])branch, depth, path));
|
||||||
ASSERT_FALSE(crypto::is_branch_in_tree(crypto::null_hash.data, root.data, (const char(*)[32])branch, depth, path));
|
ASSERT_FALSE(crypto::is_branch_in_tree(crypto::null_hash.data, root.data, (const char(*)[32])branch, depth, path));
|
||||||
|
|
||||||
|
// a version with an extra (dummy) hash
|
||||||
|
memcpy(branch_1, branch, sizeof(branch));
|
||||||
|
branch_1[depth] = crypto::null_hash;
|
||||||
|
|
||||||
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth - 1, path));
|
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth - 1, path));
|
||||||
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth + 1, path));
|
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch_1, depth + 1, path));
|
||||||
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth, path ^ 1));
|
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth, path ^ 1));
|
||||||
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth, path ^ 2));
|
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth, path ^ 2));
|
||||||
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth, path ^ 3));
|
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])branch, depth, path ^ 3));
|
||||||
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])(branch + 1), depth, path));
|
ASSERT_FALSE(crypto::is_branch_in_tree(inputs[4].data, root.data, (const char(*)[32])(branch_1 + 1), depth, path));
|
||||||
|
|
||||||
// five, not found
|
// five, not found
|
||||||
ASSERT_FALSE(crypto::tree_branch((const char(*)[32])inputs, 5, crypto::null_hash.data, (char(*)[32])branch, &depth, &path));
|
ASSERT_FALSE(crypto::tree_branch((const char(*)[32])inputs, 5, crypto::null_hash.data, (char(*)[32])branch, &depth, &path));
|
||||||
|
Loading…
Reference in New Issue
Block a user