]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
build: Use -fstrict-flex-arrays=1 if supported
authorCristian Rodríguez <crodriguez@owncloud.com>
Wed, 9 Nov 2022 23:56:46 +0000 (23:56 +0000)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 10 Nov 2022 12:07:59 +0000 (21:07 +0900)
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.

meson.build

index a2bf457ead93e4b6620dd85e5bf07df239e0ed54..00daeac1b6cd8572eada8cb8ebf39ff7f55957de 100644 (file)
@@ -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',
 ]