On Wed, Aug 5, 2015 at 8:48 AM, James Hogan <james.hogan@xxxxxxxxxx> wrote: > 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> Ooooh! Nice! This is great, thank you. :) Great to hear it helped find a bug too. :) I'm wondering if we need to macro-ize any of these. Probably not, but it just feels like there's a lot of repeated stuff now. But I think it's a bit of an illusion since each test is ever so slightly different from the others. Acked-by: Kees Cook <keescook@xxxxxxxxxxxx> -Kees -- Kees Cook Chrome OS Security