[PATCH 0/7] test_user_copy improvements

From: James Hogan
Date: Wed Aug 05 2015 - 11:49:31 EST


These patches extend the test_user_copy test module to handle lots more
cases of user accessors which architectures can override separately, and
in particular those which are important for checking the MIPS Enhanced
Virtual Addressing (EVA) implementations, which need to handle
overlapping user and kernel address spaces, with special instructions
for accessing user address space from kernel mode.

- Checking that kernel pointers are accepted when user address limit is
set to KERNEL_DS, as done by the kernel when it internally invokes
system calls with kernel pointers.
- Checking of the unchecked accessors (which don't call access_ok()).
Some of the tests are special cased for EVA at the moment which has
stricter hardware guarantees for bad user accesses than other
configurations.
- Checking of other sets of user accessors, including the inatomic user
copies, copy_in_user, clear_user, the user string accessors, and the
user checksum functions, all of which need special handling in arch
code with EVA.

Tested on MIPS with and without EVA, and on x86_64.

James Hogan (7):
test_user_copy: Check legit kernel accesses
test_user_copy: Check unchecked accessors
test_user_copy: Check __clear_user()/clear_user()
test_user_copy: Check __copy_in_user()/copy_in_user()
test_user_copy: Check __copy_{to,from}_user_inatomic()
test_user_copy: Check user string accessors
test_user_copy: Check user checksum functions

lib/test_user_copy.c | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 221 insertions(+)

Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
--
2.3.6

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