git: 858b5e424816 - main - sys: protect the kernel build from accidental _FORTIFY_SOURCE
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 12 Apr 2025 01:53:35 UTC
The branch main has been updated by kevans:
URL: https://cgit.FreeBSD.org/src/commit/?id=858b5e4248164e58f53c81a653933b45eecadacf
commit 858b5e4248164e58f53c81a653933b45eecadacf
Author: Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2025-04-12 01:53:27 +0000
Commit: Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2025-04-12 01:53:27 +0000
sys: protect the kernel build from accidental _FORTIFY_SOURCE
Fortification is a userland feature, thus the flag makes no sense in a
kernel context at the moment. Move the relevant includes that aren't
already in a !_KERNEL block under a !_KERNEL condition to avoid breaking
kernel/kmod builds that are catching a stray -D_FORTIFY_SOURCE in their
CFLAGS.
PR: 286010
Reviewed by: emaste, imp, markj
Differential Revision: https://reviews.freebsd.org/D49774
---
sys/sys/random.h | 10 ++++++----
sys/sys/select.h | 2 +-
sys/sys/socket.h | 4 ++--
3 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/sys/sys/random.h b/sys/sys/random.h
index 67aae93630b5..254ba9451d0a 100644
--- a/sys/sys/random.h
+++ b/sys/sys/random.h
@@ -156,16 +156,18 @@ void random_harvest_deregister_source(enum random_entropy_source);
#define random_harvest_queue_ether(a, b) do {} while (0)
#endif /* defined(RANDOM_ENABLE_ETHER) */
+#else /* !_KERNEL */
+
+#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
+#include <ssp/random.h>
+#endif
+
#endif /* _KERNEL */
#define GRND_NONBLOCK 0x1
#define GRND_RANDOM 0x2
#define GRND_INSECURE 0x4
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
-#include <ssp/random.h>
-#endif
-
__BEGIN_DECLS
ssize_t getrandom(void *buf, size_t buflen, unsigned int flags);
__END_DECLS
diff --git a/sys/sys/select.h b/sys/sys/select.h
index fefc9961d63a..691f66b5047d 100644
--- a/sys/sys/select.h
+++ b/sys/sys/select.h
@@ -49,7 +49,7 @@ typedef __fd_mask fd_mask;
typedef __sigset_t sigset_t;
#endif
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
+#if !defined(_KERNEL) && defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
#include <ssp/ssp.h>
#else
#define __SSP_FORTIFY_LEVEL 0
diff --git a/sys/sys/socket.h b/sys/sys/socket.h
index 064da1cb95be..5e7c554c34cf 100644
--- a/sys/sys/socket.h
+++ b/sys/sys/socket.h
@@ -685,12 +685,12 @@ struct splice {
#endif /* __BSD_VISIBLE */
+#ifndef _KERNEL
+
#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0
#include <ssp/socket.h>
#endif
-#ifndef _KERNEL
-
#include <sys/cdefs.h>
__BEGIN_DECLS