lkdtm/bugs: Switch from 1-element array to flexible array
authorKees Cook <keescook@chromium.org>
Mon, 22 May 2023 21:28:46 +0000 (14:28 -0700)
committerKees Cook <keescook@chromium.org>
Tue, 30 May 2023 23:42:00 +0000 (16:42 -0700)
The testing for ARRAY_BOUNDS just wants an uninstrumented array,
and the proper flexible array definition is fine for that.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Bill Wendling <morbo@google.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
drivers/misc/lkdtm/bugs.c

index 48821f4..d359e38 100644 (file)
@@ -309,7 +309,7 @@ static void lkdtm_OVERFLOW_UNSIGNED(void)
 struct array_bounds_flex_array {
        int one;
        int two;
-       char data[1];
+       char data[];
 };
 
 struct array_bounds {
@@ -341,7 +341,7 @@ static void lkdtm_ARRAY_BOUNDS(void)
         * For the uninstrumented flex array member, also touch 1 byte
         * beyond to verify it is correctly uninstrumented.
         */
-       for (i = 0; i < sizeof(not_checked->data) + 1; i++)
+       for (i = 0; i < 2; i++)
                not_checked->data[i] = 'A';
 
        pr_info("Array access beyond bounds ...\n");