Re: [PATCH 11/13] lib/test_printf.c: add test for large bitmaps

From: Kees Cook
Date: Mon Oct 26 2015 - 02:45:13 EST


On Wed, Oct 21, 2015 at 5:30 AM, Rasmus Villemoes
<linux@xxxxxxxxxxxxxxxxxx> wrote:
> Following "lib/vsprintf.c: expand field_width to 24 bits", let's add a
> test to see that we now actually support bitmaps with 65536 bits.
>
> Cc: Maurizio Lombardi <mlombard@xxxxxxxxxx>
> Cc: Kees Cook <keescook@xxxxxxxxxxxx>
> Cc: Tejun Heo <tj@xxxxxxxxxx>
> Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>

Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>

-Kees

> ---
> lib/test_printf.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/lib/test_printf.c b/lib/test_printf.c
> index 8fca007d9bcd..19fa411dba78 100644
> --- a/lib/test_printf.c
> +++ b/lib/test_printf.c
> @@ -12,6 +12,7 @@
> #include <linux/slab.h>
> #include <linux/string.h>
>
> +#include <linux/bitmap.h>
> #include <linux/socket.h>
> #include <linux/in.h>
>
> @@ -312,6 +313,20 @@ struct_clk(void)
> }
>
> static void __init
> +large_bitmap(void)
> +{
> + const int nbits = 1 << 16;
> + unsigned long *bits = kcalloc(BITS_TO_LONGS(nbits), sizeof(long), GFP_KERNEL);
> + if (!bits)
> + return;
> +
> + bitmap_set(bits, 1, 20);
> + bitmap_set(bits, 60000, 15);
> + test("1-20,60000-60014", "%*pbl", nbits, bits);
> + kfree(bits);
> +}
> +
> +static void __init
> bitmap(void)
> {
> DECLARE_BITMAP(bits, 20);
> @@ -330,6 +345,8 @@ bitmap(void)
> bitmap_fill(bits, 20);
> test("fffff|fffff", "%20pb|%*pb", bits, 20, bits);
> test("0-19|0-19", "%20pbl|%*pbl", bits, 20, bits);
> +
> + large_bitmap();
> }
>
> static void __init
> --
> 2.6.1
>



--
Kees Cook
Chrome OS Security
--
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/