diff options
author | Nicholas Vinson <nvinson234@gmail.com> | 2022-06-15 07:35:28 -0400 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2022-06-15 13:54:44 +0200 |
commit | 84d12cfacf8ddd857a09435f3d982ab6250d250c (patch) | |
tree | 1bf88d72d633faf94e80e04e0f93598ce6f4110a /src/expr/limit.c | |
parent | f6575131e60ab10f131ea3ff36f69af2b6c3f614 (diff) |
build: fix clang+glibc snprintf substitution error
When building with clang and glibc and -D_FORTIFY_SOURCE=2 is passed to
clang, the snprintf member of the expr_ops and obj_ops structures will
be incorrectly replaced with __builtin_snprintf_chk() which results in
"error: no member named '__builtin___snprintf_chk'" errors at build
time.
This patch changes the member name from 'snprintf' to 'output' to
prevent the replacement.
This bug can be emulated using GCC by undefining the __va_arg_pack macro
before stdio.h is included.
This patch is based on the notes provided in
https://bugs.gentoo.org/807766.
Signed-off-by: Nicholas Vinson <nvinson234@gmail.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'src/expr/limit.c')
-rw-r--r-- | src/expr/limit.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/expr/limit.c b/src/expr/limit.c index 3dfd54a..1870e0e 100644 --- a/src/expr/limit.c +++ b/src/expr/limit.c @@ -202,5 +202,5 @@ struct expr_ops expr_ops_limit = { .get = nftnl_expr_limit_get, .parse = nftnl_expr_limit_parse, .build = nftnl_expr_limit_build, - .snprintf = nftnl_expr_limit_snprintf, + .output = nftnl_expr_limit_snprintf, }; |