forked from rpms/glibc
5eec3980b9
Resolves: #2167811
49 lines
1.9 KiB
Diff
49 lines
1.9 KiB
Diff
commit c5c792092b57687ae3ebecbe8645fa71ddb19f8c
|
|
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>
|
|
(cherry picked from commit 2337e04e21ba6040926ec871e403533f77043c40)
|
|
|
|
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
|
|
index b166f3d209fe361f..92dbd3e1fc68dae7 100644
|
|
--- a/misc/sys/cdefs.h
|
|
+++ b/misc/sys/cdefs.h
|
|
@@ -151,6 +151,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. */
|
|
@@ -186,7 +187,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. */
|
|
@@ -196,7 +197,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 __warnattr(msg) __attribute__((__warning__ (msg)))
|