From: Cristian Rodríguez Date: Wed, 9 Nov 2022 23:56:46 +0000 (+0000) Subject: build: Use -fstrict-flex-arrays=1 if supported X-Git-Tag: v253-rc1~559 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=afd8e1d94527cf663a8dc013f2190a90218666bd;p=thirdparty%2Fsystemd.git build: Use -fstrict-flex-arrays=1 if supported Due to "historical reasons" both gcc and clang treat *all* trailing arrays members as flexible arrays, this has an evil side effect of inhibiting bounds checks on such members as __builtin_object_size cannot say for sure that: struct { ... type foo[3]; } has a trailing foo member of fixed size rather than unspecified. Ideally we should use -fstrict-flex-arrays as is, but we have to tolerate kernel uapi headers that use [0] and third party libraries written in c89 that may use [1] like curl. --- diff --git a/meson.build b/meson.build index a2bf457ead9..00daeac1b6c 100644 --- a/meson.build +++ b/meson.build @@ -451,6 +451,7 @@ possible_cc_flags = possible_common_cc_flags + [ '-fno-strict-aliasing', '-fstack-protector', '-fstack-protector-strong', + '-fstrict-flex-arrays=1', '-fvisibility=hidden', '--param=ssp-buffer-size=4', ]