[LTP] [PATCH 1/2] lib: Add tst_selinux_enforcing()
Petr Vorel
pvorel@suse.cz
Wed Mar 20 07:32:16 CET 2024
Co-developed-by: Mete Durlu <meted@linux.ibm.com>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Hi,
@Li, Cyril:
1) I guess we want to distinguish EACCES for SELinux enforcing, right?
If not, this commit would be dropped and second commit would just use
const int exp_errs[] = {tc->expected_errno, EACCES};
TST_EXP_FAIL_ARR(fanotify_mark(fanotify_fd, FAN_MARK_ADD | tc->mark.flags,
tc->mask.flags, dirfd, path),
exp_errs);
2) Some time ago I proposed to merge some lib/*.c files, not
just have so many files with single functions in the library. E.g.
lib/tst_fips.c, lib/tst_selinux.c, lib/tst_lockdown.c could be merged
into lib/tst_security.c. Or do we want to have these separate?
When I proposed this, I wanted to merge files, which have the same name
as the single function in the file (e.g. tst_dir_is_empty.c,
tst_path_has_mnt_flags.c), having them as single file does not help much
with searching for the content.
Kind regards,
Petr
include/tst_selinux.h | 10 ++++++++++
lib/tst_selinux.c | 25 +++++++++++++++++++++++++
2 files changed, 35 insertions(+)
create mode 100644 include/tst_selinux.h
create mode 100644 lib/tst_selinux.c
diff --git a/include/tst_selinux.h b/include/tst_selinux.h
new file mode 100644
index 000000000..18bbcff21
--- /dev/null
+++ b/include/tst_selinux.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later
+ * Copyright (c) Linux Test Project, 2024
+ */
+
+#ifndef TST_SELINUX_H__
+#define TST_SELINUX_H__
+
+int tst_selinux_enforcing(void);
+
+#endif /* TST_SELINUX_H__ */
diff --git a/lib/tst_selinux.c b/lib/tst_selinux.c
new file mode 100644
index 000000000..2219b85d4
--- /dev/null
+++ b/lib/tst_selinux.c
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) Linux Test Project, 2024
+ */
+
+#define TST_NO_DEFAULT_MAIN
+
+#define SELINUX_STATUS_PATH "/sys/fs/selinux/enforce"
+
+#include <fcntl.h>
+#include <stdlib.h>
+#include "tst_test.h"
+#include "tst_selinux.h"
+
+int tst_selinux_enforcing(void)
+{
+ int res = 0;
+
+ if (access(SELINUX_STATUS_PATH, F_OK) == 0)
+ SAFE_FILE_SCANF(SELINUX_STATUS_PATH, "%d", &res);
+
+ tst_res(TINFO, "SELinux enforcing: %s", res ? "on" : "off");
+
+ return res;
+}
--
2.43.0
More information about the ltp
mailing list