forked from mirrors/linux
		
	Makefile: Globally enable VLA warning
Now that Variable Length Arrays (VLAs) have been entirely removed[1] from the kernel, enable the VLA warning globally. The only exceptions to this are the KASan an UBSan tests which are explicitly checking that VLAs trigger their respective tests. [1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: David Airlie <airlied@linux.ie> Cc: linux-kbuild@vger.kernel.org Cc: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
		
							parent
							
								
									81b4568348
								
							
						
					
					
						commit
						0bb95f80a3
					
				
					 4 changed files with 6 additions and 2 deletions
				
			
		
							
								
								
									
										3
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								Makefile
									
									
									
									
									
								
							|  | @ -804,6 +804,9 @@ NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) | ||||||
| # warn about C99 declaration after statement
 | # warn about C99 declaration after statement
 | ||||||
| KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) | KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) | ||||||
| 
 | 
 | ||||||
|  | # Variable Length Arrays (VLAs) should not be used anywhere in the kernel
 | ||||||
|  | KBUILD_CFLAGS += $(call cc-option,-Wvla) | ||||||
|  | 
 | ||||||
| # disable pointer signed / unsigned warnings in gcc 4.0
 | # disable pointer signed / unsigned warnings in gcc 4.0
 | ||||||
| KBUILD_CFLAGS += $(call cc-disable-warning, pointer-sign) | KBUILD_CFLAGS += $(call cc-disable-warning, pointer-sign) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ | ||||||
| # Note the danger in using -Wall -Wextra is that when CI updates gcc we
 | # Note the danger in using -Wall -Wextra is that when CI updates gcc we
 | ||||||
| # will most likely get a sudden build breakage... Hopefully we will fix
 | # will most likely get a sudden build breakage... Hopefully we will fix
 | ||||||
| # new warnings before CI updates!
 | # new warnings before CI updates!
 | ||||||
| subdir-ccflags-y := -Wall -Wextra -Wvla | subdir-ccflags-y := -Wall -Wextra | ||||||
| subdir-ccflags-y += $(call cc-disable-warning, unused-parameter) | subdir-ccflags-y += $(call cc-disable-warning, unused-parameter) | ||||||
| subdir-ccflags-y += $(call cc-disable-warning, type-limits) | subdir-ccflags-y += $(call cc-disable-warning, type-limits) | ||||||
| subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers) | subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers) | ||||||
|  |  | ||||||
|  | @ -53,7 +53,9 @@ obj-$(CONFIG_TEST_HASH) += test_hash.o test_siphash.o | ||||||
| obj-$(CONFIG_TEST_IDA) += test_ida.o | obj-$(CONFIG_TEST_IDA) += test_ida.o | ||||||
| obj-$(CONFIG_TEST_KASAN) += test_kasan.o | obj-$(CONFIG_TEST_KASAN) += test_kasan.o | ||||||
| CFLAGS_test_kasan.o += -fno-builtin | CFLAGS_test_kasan.o += -fno-builtin | ||||||
|  | CFLAGS_test_kasan.o += $(call cc-disable-warning, vla) | ||||||
| obj-$(CONFIG_TEST_UBSAN) += test_ubsan.o | obj-$(CONFIG_TEST_UBSAN) += test_ubsan.o | ||||||
|  | CFLAGS_test_ubsan.o += $(call cc-disable-warning, vla) | ||||||
| UBSAN_SANITIZE_test_ubsan.o := y | UBSAN_SANITIZE_test_ubsan.o := y | ||||||
| obj-$(CONFIG_TEST_KSTRTOX) += test-kstrtox.o | obj-$(CONFIG_TEST_KSTRTOX) += test-kstrtox.o | ||||||
| obj-$(CONFIG_TEST_LIST_SORT) += test_list_sort.o | obj-$(CONFIG_TEST_LIST_SORT) += test_list_sort.o | ||||||
|  |  | ||||||
|  | @ -52,7 +52,6 @@ warning-3 += -Wpointer-arith | ||||||
| warning-3 += -Wredundant-decls | warning-3 += -Wredundant-decls | ||||||
| warning-3 += -Wswitch-default | warning-3 += -Wswitch-default | ||||||
| warning-3 += $(call cc-option, -Wpacked-bitfield-compat) | warning-3 += $(call cc-option, -Wpacked-bitfield-compat) | ||||||
| warning-3 += $(call cc-option, -Wvla) |  | ||||||
| 
 | 
 | ||||||
| warning := $(warning-$(findstring 1, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | warning := $(warning-$(findstring 1, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | ||||||
| warning += $(warning-$(findstring 2, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | warning += $(warning-$(findstring 2, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Kees Cook
						Kees Cook