nvml/Initialize-child_idx.patch
2021-01-26 09:58:18 +08:00

44 lines
1.3 KiB
Diff

From 721a48e5397bd4ab454482041e55671eae7b189f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 11 May 2020 18:01:11 -0700
Subject: [PATCH] examples: Initialize child_idx
Assign UINT_MAX and assert it
Fixes warning
rtree_map.c:358:12: error: 'child_idx' may be used uninitialized
in this function [-Werror=maybe-uninitialized]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/examples/libpmemobj/tree_map/rtree_map.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/examples/libpmemobj/tree_map/rtree_map.c b/src/examples/libpmemobj/tree_map/rtree_map.c
index 995e22bb94..6b3ead65c2 100644
--- a/src/examples/libpmemobj/tree_map/rtree_map.c
+++ b/src/examples/libpmemobj/tree_map/rtree_map.c
@@ -8,6 +8,7 @@
#include <ex_common.h>
#include <assert.h>
#include <errno.h>
+#include <limits.h>
#include <stdlib.h>
#include <stdbool.h>
@@ -320,12 +321,13 @@ has_only_one_child(TOID(struct tree_map_node) node, unsigned *child_idx)
static void
remove_extra_node(TOID(struct tree_map_node) *node)
{
- unsigned child_idx;
+ unsigned child_idx = UINT_MAX;
TOID(struct tree_map_node) tmp, tmp_child;
/* Our node has child with only one child. */
tmp = *node;
has_only_one_child(tmp, &child_idx);
+ assert(child_idx != UINT_MAX);
tmp_child = D_RO(tmp)->slots[child_idx];
/*