summaryrefslogtreecommitdiffstats
path: root/lib/test_overflow.c
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2019-07-16 19:27:24 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-16 22:23:22 -0400
commit8e060c21ae2c265a2b596e9e7f9f97ec274151a4 (patch)
tree89311e5adf37740675f8d07edc2a61e496b4c553 /lib/test_overflow.c
parentd1a5dc5e6accbeaabe59e3d55b47f15a8b19c2bd (diff)
lib/test_overflow.c: avoid tainting the kernel and fix wrap size
This adds __GFP_NOWARN to the kmalloc()-portions of the overflow test to avoid tainting the kernel. Additionally fixes up the math on wrap size to be architecture and page size agnostic. Link: http://lkml.kernel.org/r/201905282012.0A8767E24@keescook Fixes: ca90800a91ba ("test_overflow: Add memory allocation overflow tests") Signed-off-by: Kees Cook <keescook@chromium.org> Reported-by: Randy Dunlap <rdunlap@infradead.org> Suggested-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Cc: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/test_overflow.c')
-rw-r--r--lib/test_overflow.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/test_overflow.c b/lib/test_overflow.c
index fc680562d8b6..7a4b6f6c5473 100644
--- a/lib/test_overflow.c
+++ b/lib/test_overflow.c
@@ -486,16 +486,17 @@ static int __init test_overflow_shift(void)
486 * Deal with the various forms of allocator arguments. See comments above 486 * Deal with the various forms of allocator arguments. See comments above
487 * the DEFINE_TEST_ALLOC() instances for mapping of the "bits". 487 * the DEFINE_TEST_ALLOC() instances for mapping of the "bits".
488 */ 488 */
489#define alloc010(alloc, arg, sz) alloc(sz, GFP_KERNEL) 489#define alloc_GFP (GFP_KERNEL | __GFP_NOWARN)
490#define alloc011(alloc, arg, sz) alloc(sz, GFP_KERNEL, NUMA_NO_NODE) 490#define alloc010(alloc, arg, sz) alloc(sz, alloc_GFP)
491#define alloc011(alloc, arg, sz) alloc(sz, alloc_GFP, NUMA_NO_NODE)
491#define alloc000(alloc, arg, sz) alloc(sz) 492#define alloc000(alloc, arg, sz) alloc(sz)
492#define alloc001(alloc, arg, sz) alloc(sz, NUMA_NO_NODE) 493#define alloc001(alloc, arg, sz) alloc(sz, NUMA_NO_NODE)
493#define alloc110(alloc, arg, sz) alloc(arg, sz, GFP_KERNEL) 494#define alloc110(alloc, arg, sz) alloc(arg, sz, alloc_GFP)
494#define free0(free, arg, ptr) free(ptr) 495#define free0(free, arg, ptr) free(ptr)
495#define free1(free, arg, ptr) free(arg, ptr) 496#define free1(free, arg, ptr) free(arg, ptr)
496 497
497/* Wrap around to 8K */ 498/* Wrap around to 16K */
498#define TEST_SIZE (9 << PAGE_SHIFT) 499#define TEST_SIZE (5 * 4096)
499 500
500#define DEFINE_TEST_ALLOC(func, free_func, want_arg, want_gfp, want_node)\ 501#define DEFINE_TEST_ALLOC(func, free_func, want_arg, want_gfp, want_node)\
501static int __init test_ ## func (void *arg) \ 502static int __init test_ ## func (void *arg) \