]> www.infradead.org Git - users/jedix/linux-maple.git/commit
selinux: do not include <linux/*.h> headers from host programs
authorMasahiro Yamada <masahiroy@kernel.org>
Fri, 6 Sep 2024 17:29:13 +0000 (02:29 +0900)
committerPaul Moore <paul@paul-moore.com>
Thu, 3 Oct 2024 19:34:24 +0000 (15:34 -0400)
commit541b57e313683b3d4c365fe3109fb34828b165cd
treec444dd571c507f9e7a44fb28044203bdac7ce9a5
parent9852d85ec9d492ebef56dc5f229416c925758edc
selinux: do not include <linux/*.h> headers from host programs

The header, security/selinux/include/classmap.h, is included not only
from kernel space but also from host programs.

It includes <linux/capability.h> and <linux/socket.h>, which pull in
more <linux/*.h> headers. This makes the host programs less portable,
specifically causing build errors on macOS.

Those headers are included for the following purposes:

 - <linux/capability.h> for checking CAP_LAST_CAP
 - <linux/socket.h> for checking PF_MAX

These checks can be guarded by __KERNEL__ so they are skipped when
building host programs. Testing them when building the kernel should
be sufficient.

The header, security/selinux/include/initial_sid_to_string.h, includes
<linux/stddef.h> for the NULL definition, but this is not portable
either. Instead, <stddef.h> should be included for host programs.

Reported-by: Daniel Gomez <da.gomez@samsung.com>
Closes: https://lore.kernel.org/lkml/20240807-macos-build-support-v1-6-4cd1ded85694@samsung.com/
Closes: https://lore.kernel.org/lkml/20240807-macos-build-support-v1-7-4cd1ded85694@samsung.com/
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Paul Moore <paul@paul-moore.com>
scripts/selinux/genheaders/Makefile
scripts/selinux/genheaders/genheaders.c
scripts/selinux/mdp/Makefile
scripts/selinux/mdp/mdp.c
security/selinux/include/classmap.h
security/selinux/include/initial_sid_to_string.h