浏览代码

[NET]: Fix potential stack overflow in net/core/utils.c

On High end systems (1024 or so cpus) this can potentially cause stack
overflow.  Fix the stack usage.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Suresh Siddha 18 年之前
父节点
当前提交
8557511250
共有 1 个文件被更改,包括 4 次插入3 次删除
  1. 4 3
      net/core/utils.c

+ 4 - 3
net/core/utils.c

@@ -130,12 +130,13 @@ void __init net_random_init(void)
 static int net_random_reseed(void)
 static int net_random_reseed(void)
 {
 {
 	int i;
 	int i;
-	unsigned long seed[NR_CPUS];
+	unsigned long seed;
 
 
-	get_random_bytes(seed, sizeof(seed));
 	for_each_possible_cpu(i) {
 	for_each_possible_cpu(i) {
 		struct nrnd_state *state = &per_cpu(net_rand_state,i);
 		struct nrnd_state *state = &per_cpu(net_rand_state,i);
-		__net_srandom(state, seed[i]);
+
+		get_random_bytes(&seed, sizeof(seed));
+		__net_srandom(state, seed);
 	}
 	}
 	return 0;
 	return 0;
 }
 }