[PATCH] Fix a SEGV due to uninitialised mask

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



As node_cpu_mask_v2 is not defined as local to the compilation unit with
'static', it is not guaranteed to be initialised to zero (ie in the .bss).
This was leading to some SEGVs we've seen.

Also mark another internal function local to the compilation unit.

Signed-off-by: Daniel J Blueman <daniel@xxxxxxxxxxxxx>
---
 libnuma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libnuma.c b/libnuma.c
index 8d7bf13..3717d5b 100644
--- a/libnuma.c
+++ b/libnuma.c
@@ -58,7 +58,7 @@ struct bitmask *numa_possible_cpus_ptr = NULL;
 struct bitmask *numa_nodes_ptr = NULL;
 static struct bitmask *numa_memnode_ptr = NULL;
 static unsigned long *node_cpu_mask_v1[NUMA_NUM_NODES];
-struct bitmask **node_cpu_mask_v2;
+static struct bitmask **node_cpu_mask_v2;
 
 WEAK void numa_error(char *where);
 
@@ -1234,7 +1234,7 @@ numa_parse_bitmap_v2(char *line, struct bitmask *mask)
 __asm__(".symver numa_parse_bitmap_v2,numa_parse_bitmap@@libnuma_1.2");
 
 void
-init_node_cpu_mask_v2(void)
+static init_node_cpu_mask_v2(void)
 {
 	int nnodes = numa_max_possible_node_v2_int() + 1;
 	node_cpu_mask_v2 = calloc (nnodes, sizeof(struct bitmask *));
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-numa" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]     [Devices]

  Powered by Linux