|
Message-ID: <20180307212555.GA17927@beast> Date: Wed, 7 Mar 2018 13:25:55 -0800 From: Kees Cook <keescook@...omium.org> To: Andrew Morton <akpm@...ux-foundation.org> Cc: Yury Norov <ynorov@...iumnetworks.com>, Andy Shevchenko <andriy.shevchenko@...ux.intel.com>, Matthew Wilcox <mawilcox@...rosoft.com>, linux-kernel@...r.kernel.org, kernel-hardening@...ts.openwall.com Subject: [PATCH] test_bitmap: Do not accidentally use stack VLA This avoids an accidental stack VLA (since the compiler thinks the value of "len" can change, even when marked "const"). This just replaces it with a #define so it will DTRT. Seen with -Wvla. Fixed as part of the directive to remove all VLAs from the kernel: https://lkml.org/lkml/2018/3/7/621 Cc: Yury Norov <ynorov@...iumnetworks.com> Cc: Andy Shevchenko <andriy.shevchenko@...ux.intel.com> Cc: Matthew Wilcox <mawilcox@...rosoft.com> Signed-off-by: Kees Cook <keescook@...omium.org> --- lib/test_bitmap.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/test_bitmap.c b/lib/test_bitmap.c index b3f235baa05d..756f20ad03db 100644 --- a/lib/test_bitmap.c +++ b/lib/test_bitmap.c @@ -292,15 +292,17 @@ static void __init test_bitmap_parselist(void) } } +#define EXP_BYTES (sizeof(exp) * 8) + static void __init test_bitmap_arr32(void) { - unsigned int nbits, next_bit, len = sizeof(exp) * 8; + unsigned int nbits, next_bit; u32 arr[sizeof(exp) / 4]; - DECLARE_BITMAP(bmap2, len); + DECLARE_BITMAP(bmap2, EXP_BYTES); memset(arr, 0xa5, sizeof(arr)); - for (nbits = 0; nbits < len; ++nbits) { + for (nbits = 0; nbits < EXP_BYTES; ++nbits) { bitmap_to_arr32(arr, exp, nbits); bitmap_from_arr32(bmap2, arr, nbits); expect_eq_bitmap(bmap2, exp, nbits); @@ -312,7 +314,7 @@ static void __init test_bitmap_arr32(void) " tail is not safely cleared: %d\n", nbits, next_bit); - if (nbits < len - 32) + if (nbits < EXP_BYTES - 32) expect_eq_uint(arr[DIV_ROUND_UP(nbits, 32)], 0xa5a5a5a5); } -- 2.7.4 -- Kees Cook Pixel Security
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.