lib/test_ubsan.c: VLA no longer used in kernel
authorOlof Johansson <olof@lixom.net>
Fri, 8 Mar 2019 00:28:21 +0000 (16:28 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Mar 2019 02:32:00 +0000 (18:32 -0800)
Since we now build with -Wvla, any use of VLA throws a warning.
Including this test, so...  maybe we should just remove the test?

  lib/test_ubsan.c: In function 'test_ubsan_vla_bound_not_positive':
  lib/test_ubsan.c:48:2: warning: ISO C90 forbids variable length array 'buf' [-Wvla]

For the out-of-bounds test, switch to non-VLA setup.

  lib/test_ubsan.c: In function 'test_ubsan_out_of_bounds':
  lib/test_ubsan.c:64:2: warning: ISO C90 forbids variable length array 'arr' [-Wvla]

Link: http://lkml.kernel.org/r/20190113183210.56154-1-olof@lixom.net
Signed-off-by: Olof Johansson <olof@lixom.net>
Acked-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Colin Ian King <colin.king@canonical.com>
Cc: Jinbum Park <jinb.park7@gmail.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Kees Cook <keescook@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/test_ubsan.c

index 280f4979d00eda2a3ec54769d6f32392cdc60ecc..9ea10adf7a66f2cd2e2ec60de738e4fa5262cf38 100644 (file)
@@ -42,14 +42,6 @@ static void test_ubsan_divrem_overflow(void)
        val /= val2;
 }
 
-static void test_ubsan_vla_bound_not_positive(void)
-{
-       volatile int size = -1;
-       char buf[size];
-
-       (void)buf;
-}
-
 static void test_ubsan_shift_out_of_bounds(void)
 {
        volatile int val = -1;
@@ -61,7 +53,7 @@ static void test_ubsan_shift_out_of_bounds(void)
 static void test_ubsan_out_of_bounds(void)
 {
        volatile int i = 4, j = 5;
-       volatile int arr[i];
+       volatile int arr[4];
 
        arr[j] = i;
 }
@@ -113,7 +105,6 @@ static const test_ubsan_fp test_ubsan_array[] = {
        test_ubsan_mul_overflow,
        test_ubsan_negate_overflow,
        test_ubsan_divrem_overflow,
-       test_ubsan_vla_bound_not_positive,
        test_ubsan_shift_out_of_bounds,
        test_ubsan_out_of_bounds,
        test_ubsan_load_invalid_value,