summaryrefslogtreecommitdiff
path: root/arch/powerpc/platforms
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2016-07-30 17:23:08 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2016-07-31 07:00:06 +0300
commitdd0f0cf58af70dc9267409f113bea772d57f675c (patch)
treef0a655622dc3e030c2f12388f07bfafd20e2b049 /arch/powerpc/platforms
parent7f155c702677d057d03b192ce652311de5434697 (diff)
downloadlinux-dd0f0cf58af70dc9267409f113bea772d57f675c.tar.xz
random: Fix crashes with sparse node ids
On a system with sparse node ids, eg. a powerpc system with 4 nodes numbered like so: node 0: [mem 0x0000000000000000-0x00000007ffffffff] node 1: [mem 0x0000000800000000-0x0000000fffffffff] node 16: [mem 0x0000001000000000-0x00000017ffffffff] node 17: [mem 0x0000001800000000-0x0000001fffffffff] The code in rand_initialize() will allocate 4 pointers for the pool array, and initialise them correctly. However when go to use the pool, in eg. extract_crng(), we use the numa_node_id() to index into the array. For the higher numbered node ids this leads to random memory corruption, depending on what was kmalloc'ed adjacent to the pool array. Fix it by using nr_node_ids to size the pool array. Fixes: 1e7f583af67b ("random: make /dev/urandom scalable for silly userspace programs") Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/powerpc/platforms')
0 files changed, 0 insertions, 0 deletions