aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2024-05-14 23:16:58 +0000
committerKyle Evans <kevans@FreeBSD.org>2024-05-14 23:22:18 +0000
commit5af6fbd72790173e128222943effc5aa95272ce9 (patch)
treefd6d1f6ada83e836c052faeabdf6c5252508d5b7 /include
parentc6113ac5a2c2bfee875979ebd40a007ef4d60069 (diff)
downloadsrc-5af6fbd72790173e128222943effc5aa95272ce9.tar.gz
src-5af6fbd72790173e128222943effc5aa95272ce9.zip
ssp: appease -Wgnu-statement-expression-from-macro-expansion
It's a stupid warning, but some ports enable it by default and were already defining _FORTIFY_SOURCE, thus exposing the new macros immediately. This at least fixes the libfido2 build, perhaps others as well. While we're here, fix a fresh build of stand w/ FORTIFY_SOURCE enabled by not pulling in the ssp headers if _STANDALONE is defined. We do not have runtime support in libsa as of the time of writing. Reported by: netchild Sponsored by: Stormshield Sponsored by: Klara, Inc.
Diffstat (limited to 'include')
-rw-r--r--include/ssp/stdio.h10
-rw-r--r--include/ssp/string.h4
-rw-r--r--include/ssp/strings.h4
-rw-r--r--include/stdio.h2
-rw-r--r--include/string.h2
-rw-r--r--include/strings.h2
-rw-r--r--include/unistd.h2
7 files changed, 13 insertions, 13 deletions
diff --git a/include/ssp/stdio.h b/include/ssp/stdio.h
index ed7303497a45..4bca1de7d4f9 100644
--- a/include/ssp/stdio.h
+++ b/include/ssp/stdio.h
@@ -53,31 +53,31 @@ __END_DECLS
#if __SSP_FORTIFY_LEVEL > 0
-#define sprintf(str, ...) ({ \
+#define sprintf(str, ...) __extension__ ({ \
char *_ssp_str = (str); \
__builtin___sprintf_chk(_ssp_str, 0, __ssp_bos(_ssp_str), \
__VA_ARGS__); \
})
-#define vsprintf(str, fmt, ap) ({ \
+#define vsprintf(str, fmt, ap) __extension__ ({ \
char *_ssp_str = (str); \
__builtin___vsprintf_chk(_ssp_str, 0, __ssp_bos(_ssp_str), fmt, \
ap); \
})
-#define snprintf(str, len, ...) ({ \
+#define snprintf(str, len, ...) __extension__ ({ \
char *_ssp_str = (str); \
__builtin___snprintf_chk(_ssp_str, len, 0, __ssp_bos(_ssp_str), \
__VA_ARGS__); \
})
-#define vsnprintf(str, len, fmt, ap) ({ \
+#define vsnprintf(str, len, fmt, ap) __extension__ ({ \
char *_ssp_str = (str); \
__builtin___vsnprintf_chk(_ssp_str, len, 0, __ssp_bos(_ssp_str), \
fmt, ap); \
})
-#define fgets(str, len, fp) ({ \
+#define fgets(str, len, fp) __extension__ ({ \
char *_ssp_str = (str); \
__fgets_chk(_ssp_str, len, __ssp_bos(_ssp_str), fp); \
})
diff --git a/include/ssp/string.h b/include/ssp/string.h
index 996020fda778..ceb4ba2a2174 100644
--- a/include/ssp/string.h
+++ b/include/ssp/string.h
@@ -51,7 +51,7 @@ __END_DECLS
#if __SSP_FORTIFY_LEVEL > 0
#define __ssp_bos_check3_typed_var(fun, dsttype, dsrvar, dst, srctype, srcvar, \
- src, lenvar, len) ({ \
+ src, lenvar, len) __extension__ ({ \
srctype srcvar = (src); \
dsttype dstvar = (dst); \
size_t lenvar = (len); \
@@ -69,7 +69,7 @@ __END_DECLS
__ssp_bos_check3_typed_var(fun, void *, __ssp_var(dstv), dst, \
const void *, __ssp_var(srcv), src, __ssp_var(lenv), len)
-#define __ssp_bos_check2_var(fun, dstvar, dst, srcvar, src) ({ \
+#define __ssp_bos_check2_var(fun, dstvar, dst, srcvar, src) __extension__ ({ \
const void *srcvar = (src); \
void *dstvar = (dst); \
((__ssp_bos0(dstvar) != (size_t)-1) ? \
diff --git a/include/ssp/strings.h b/include/ssp/strings.h
index 06c9c7cc0a09..51b11a14ee87 100644
--- a/include/ssp/strings.h
+++ b/include/ssp/strings.h
@@ -39,7 +39,7 @@
#if __SSP_FORTIFY_LEVEL > 0
-#define _ssp_bcopy(srcvar, src, dstvar, dst, lenvar, len) ({ \
+#define _ssp_bcopy(srcvar, src, dstvar, dst, lenvar, len) __extension__ ({ \
const void *srcvar = (src); \
void *dstvar = (dst); \
size_t lenvar = (len); \
@@ -52,7 +52,7 @@
#define bcopy(src, dst, len) \
_ssp_bcopy(__ssp_var(srcv), src, __ssp_var(dstv), dst, __ssp_var(lenv), len)
-#define _ssp_bzero(dstvar, dst, lenvar, len) ({ \
+#define _ssp_bzero(dstvar, dst, lenvar, len) __extension__ ({ \
void *dstvar = (dst); \
size_t lenvar = (len); \
((__ssp_bos0(dstvar) != (size_t)-1) ? \
diff --git a/include/stdio.h b/include/stdio.h
index 30bc638082d8..ea53816cf1d4 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -530,7 +530,7 @@ extern int __isthreaded;
__END_DECLS
__NULLABILITY_PRAGMA_POP
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
+#if !defined(_STANDALONE) && defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
#include <ssp/stdio.h>
#endif
#endif /* !_STDIO_H_ */
diff --git a/include/string.h b/include/string.h
index a595f6e3e260..ce605117daa6 100644
--- a/include/string.h
+++ b/include/string.h
@@ -168,7 +168,7 @@ errno_t memset_s(void *, rsize_t, int, rsize_t);
#endif /* __EXT1_VISIBLE */
__END_DECLS
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
+#if !defined(_STANDALONE) && defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
#include <ssp/string.h>
#endif
#endif /* _STRING_H_ */
diff --git a/include/strings.h b/include/strings.h
index 6fe6a09e7dd3..511f7c03cb3c 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -68,7 +68,7 @@ int strncasecmp(const char *, const char *, size_t) __pure;
#endif
__END_DECLS
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
+#if !defined(_STANDALONE) && defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
#include <ssp/strings.h>
#endif
#endif /* _STRINGS_H_ */
diff --git a/include/unistd.h b/include/unistd.h
index 59738cbf6e68..48155bb2971b 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -37,7 +37,7 @@
#include <sys/_null.h>
#include <sys/_types.h>
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
+#if !defined(_STANDALONE) && defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
#include <ssp/unistd.h>
#endif