powerpc: Add array bounds checking to crash_shutdown_handlers
authorSuraj Jitindar Singh <sjitindarsingh@gmail.com>
Wed, 11 May 2016 00:57:32 +0000 (10:57 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 16 Jun 2016 06:05:47 +0000 (16:05 +1000)
commit1d1451655bad9a6a5fd7a42de68420069ce3bee3
tree4758fb505baba109df90e6f75247c429e30a8940
parent3079abe555511031e2ba5d1e21ddc52edc9af349
powerpc: Add array bounds checking to crash_shutdown_handlers

The array crash_shutdown_handles is an array of size CRASH_HANDLER_MAX+1
containing up to CRASH_HANDLER_MAX shutdown_handlers. It is assumed to
be NULL terminated, which it is under normal circumstances. Array
accesses in the functions crash_shutdown_unregister() and
default_machine_crash_shutdown() rely on this NULL termination property
when traversing this list and don't protect again out of bounds accesses.
If the NULL terminator were somehow overwritten these functions could
potentially access out of the bounds of the array.

Shrink the array to size CRASH_HANDLER_MAX and implement explicit array
bounds checking when accessing the elements of the
crash_shutdown_handles[] array in crash_shutdown_unregister() and
default_machine_crash_shutdown().

Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/crash.c