You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.9 KiB
48 lines
1.9 KiB
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)))
|
|
|