mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 16:35:02 +01:00
regression tests: Don't build syscall_sysctl if missing kernel headers
sys/sysctl.h is not guaranteed to exist anymore since
https://sourceware.org/pipermail/glibc-cvs/2020q2/069366.html
which is a follow on to the kernel commit
61a47c1ad3a4 sysctl: Remove the sysctl system call
While the syscall_sysctl currently checks if the kernel supports
sysctrs before running the tests. The tests can't even build if the
kernel headers don't have the sysctl defines.
Fixes: https://gitlab.com/apparmor/apparmor/-/issues/119
Fixes: https://bugs.launchpad.net/apparmor/+bug/1897288
MR: https://gitlab.com/apparmor/apparmor/-/merge_requests/637
Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Steve Beattie <steve.beattie@canonical.com>
(cherry picked from commit 2e5a266eb7
)
This commit is contained in:
parent
58e4e8169c
commit
7a7c7fb346
2 changed files with 20 additions and 5 deletions
|
@ -69,6 +69,9 @@ endif # USE_SYSTEM
|
|||
|
||||
CFLAGS += -g -O0 -Wall -Wstrict-prototypes
|
||||
|
||||
USE_SYSCTL:=$(shell echo "#include <sys/sysctl.h>" | cpp -dM >/dev/null 2>/dev/null && echo true)
|
||||
|
||||
|
||||
SRC=access.c \
|
||||
at_secure.c \
|
||||
introspect.c \
|
||||
|
@ -130,7 +133,6 @@ SRC=access.c \
|
|||
syscall_sethostname.c \
|
||||
syscall_setdomainname.c \
|
||||
syscall_setscheduler.c \
|
||||
syscall_sysctl.c \
|
||||
sysctl_proc.c \
|
||||
tcp.c \
|
||||
transition.c \
|
||||
|
@ -146,6 +148,12 @@ ifneq (,$(findstring $(shell uname -i),i386 i486 i586 i686 x86 x86_64))
|
|||
SRC+=syscall_ioperm.c syscall_iopl.c
|
||||
endif
|
||||
|
||||
#only do sysctl syscall test if defines installed and OR supported by the
|
||||
# kernel
|
||||
ifeq ($(USE_SYSCTL),true)
|
||||
SRC+=syscall_sysctl.c
|
||||
endif
|
||||
|
||||
#only do dbus if proper libs are installl
|
||||
ifneq (,$(shell pkg-config --exists dbus-1 && echo TRUE))
|
||||
SRC+=dbus_eavesdrop.c dbus_message.c dbus_service.c dbus_unrequested_reply.c
|
||||
|
|
|
@ -148,11 +148,18 @@ test_sysctl_proc()
|
|||
# check if the kernel supports CONFIG_SYSCTL_SYSCALL
|
||||
# generally we want to encourage kernels to disable it, but if it's
|
||||
# enabled we want to test against it
|
||||
settest syscall_sysctl
|
||||
if ! res="$(${test} ro 2>&1)" && [ "$res" = "FAIL: sysctl read failed - Function not implemented" ] ; then
|
||||
echo " WARNING: syscall sysctl not implemented, skipping tests ..."
|
||||
# In addition test that sysctl exists in the kernel headers, if it does't
|
||||
# then we can't even built the syscall_sysctl test
|
||||
if echo "#include <sys/sysctl.h>" | cpp -dM >/dev/null 2>/dev/null ; then
|
||||
settest syscall_sysctl
|
||||
|
||||
if ! res="$(${test} ro 2>&1)" && [ "$res" = "FAIL: sysctl read failed - Function not implemented" ] ; then
|
||||
echo " WARNING: syscall sysctl not implemented, skipping tests ..."
|
||||
else
|
||||
test_syscall_sysctl
|
||||
fi
|
||||
else
|
||||
test_syscall_sysctl
|
||||
echo " WARNING: syscall sysctl not supported by kernel headers, skipping tests ..."
|
||||
fi
|
||||
|
||||
# now test /proc/sys/ paths
|
||||
|
|
Loading…
Add table
Reference in a new issue