48 lines
1.8 KiB
Diff
48 lines
1.8 KiB
Diff
commit 2337e04e21ba6040926ec871e403533f77043c40
|
|
Author: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
|
Date: Thu Feb 2 07:49:02 2023 -0500
|
|
|
|
cdefs: Limit definition of fortification macros
|
|
|
|
Define the __glibc_fortify and other macros only when __FORTIFY_LEVEL >
|
|
0. This has the effect of not defining these macros on older C90
|
|
compilers that do not have support for variable length argument lists.
|
|
|
|
Also trim off the trailing backslashes from the definition of
|
|
__glibc_fortify and __glibc_fortify_n macros.
|
|
|
|
Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
|
Reviewed-by: Florian Weimer <fweimer@redhat.com>
|
|
|
|
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
|
|
index f3d7efdd2a9320f7..46ec4ef71e14c569 100644
|
|
--- a/misc/sys/cdefs.h
|
|
+++ b/misc/sys/cdefs.h
|
|
@@ -133,6 +133,7 @@
|
|
# define __glibc_objsize(__o) __bos (__o)
|
|
#endif
|
|
|
|
+#if __USE_FORTIFY_LEVEL > 0
|
|
/* Compile time conditions to choose between the regular, _chk and _chk_warn
|
|
variants. These conditions should get evaluated to constant and optimized
|
|
away. */
|
|
@@ -168,7 +169,7 @@
|
|
? __ ## f ## _alias (__VA_ARGS__) \
|
|
: (__glibc_unsafe_len (__l, __s, __osz) \
|
|
? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \
|
|
- : __ ## f ## _chk (__VA_ARGS__, __osz))) \
|
|
+ : __ ## f ## _chk (__VA_ARGS__, __osz)))
|
|
|
|
/* Fortify function f, where object size argument passed to f is the number of
|
|
elements and not total size. */
|
|
@@ -178,7 +179,8 @@
|
|
? __ ## f ## _alias (__VA_ARGS__) \
|
|
: (__glibc_unsafe_len (__l, __s, __osz) \
|
|
? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \
|
|
- : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \
|
|
+ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s))))
|
|
+#endif
|
|
|
|
#if __GNUC_PREREQ (4,3)
|
|
# define __warndecl(name, msg) \
|