166 lines
5.1 KiB
Diff
166 lines
5.1 KiB
Diff
From 25c1521451ebcf5733fa7893bf76d7ffb659dc37 Mon Sep 17 00:00:00 2001
|
|
From: Ziyang Zhou <ziyang.zhou@outlook.com>
|
|
Date: Sun, 9 May 2021 23:44:12 +0800
|
|
Subject: [PATCH] ignore selinux
|
|
|
|
---
|
|
libselinux/include/selinux/selinux.h | 4 ++++
|
|
libselinux/src/checkAccess.c | 1 +
|
|
libselinux/src/getenforce.c | 1 +
|
|
libselinux/src/getfilecon.c | 1 +
|
|
libselinux/src/getpeercon.c | 1 +
|
|
libselinux/src/init.c | 1 +
|
|
libselinux/src/label.c | 1 +
|
|
libselinux/src/lgetfilecon.c | 1 +
|
|
libselinux/src/lsetfilecon.c | 1 +
|
|
libselinux/src/procattr.c | 2 ++
|
|
libselinux/src/sestatus.c | 1 +
|
|
11 files changed, 15 insertions(+)
|
|
|
|
diff --git a/libselinux/include/selinux/selinux.h b/libselinux/include/selinux/selinux.h
|
|
index a0948853..3ddeee2d 100644
|
|
--- a/libselinux/include/selinux/selinux.h
|
|
+++ b/libselinux/include/selinux/selinux.h
|
|
@@ -4,6 +4,10 @@
|
|
#include <sys/types.h>
|
|
#include <stdarg.h>
|
|
|
|
+#define SE_HACK
|
|
+#define se_hack() if (1) return
|
|
+#define se_hack1(p) if (1) return p
|
|
+
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
diff --git a/libselinux/src/checkAccess.c b/libselinux/src/checkAccess.c
|
|
index 022cd6b5..a23bffc9 100644
|
|
--- a/libselinux/src/checkAccess.c
|
|
+++ b/libselinux/src/checkAccess.c
|
|
@@ -20,6 +20,7 @@ static void avc_init_once(void)
|
|
}
|
|
|
|
int selinux_check_access(const char *scon, const char *tcon, const char *class, const char *perm, void *aux) {
|
|
+ se_hack1(0);
|
|
int rc;
|
|
security_id_t scon_id;
|
|
security_id_t tcon_id;
|
|
diff --git a/libselinux/src/getenforce.c b/libselinux/src/getenforce.c
|
|
index 3f1e2002..bf162279 100644
|
|
--- a/libselinux/src/getenforce.c
|
|
+++ b/libselinux/src/getenforce.c
|
|
@@ -11,6 +11,7 @@
|
|
|
|
int security_getenforce(void)
|
|
{
|
|
+ se_hack1(0);
|
|
int fd, ret, enforce = 0;
|
|
char path[PATH_MAX];
|
|
char buf[20];
|
|
diff --git a/libselinux/src/getfilecon.c b/libselinux/src/getfilecon.c
|
|
index 4bee3137..f8b159a0 100644
|
|
--- a/libselinux/src/getfilecon.c
|
|
+++ b/libselinux/src/getfilecon.c
|
|
@@ -52,6 +52,7 @@ int getfilecon_raw(const char *path, char ** context)
|
|
|
|
int getfilecon(const char *path, char ** context)
|
|
{
|
|
+ se_hack1((*context = calloc(7, 1), memcpy(*context, "HACKED", 6), 0));
|
|
int ret;
|
|
char * rcontext = NULL;
|
|
|
|
diff --git a/libselinux/src/getpeercon.c b/libselinux/src/getpeercon.c
|
|
index a9dca73e..10771cbf 100644
|
|
--- a/libselinux/src/getpeercon.c
|
|
+++ b/libselinux/src/getpeercon.c
|
|
@@ -46,6 +46,7 @@ int getpeercon_raw(int fd, char ** context)
|
|
|
|
int getpeercon(int fd, char ** context)
|
|
{
|
|
+ se_hack1((*context = calloc(7, 1), memcpy(*context, "HACKED", 6), 0));
|
|
int ret;
|
|
char * rcontext;
|
|
|
|
diff --git a/libselinux/src/init.c b/libselinux/src/init.c
|
|
index 439da417..41268a74 100644
|
|
--- a/libselinux/src/init.c
|
|
+++ b/libselinux/src/init.c
|
|
@@ -139,6 +139,7 @@ void fini_selinuxmnt(void)
|
|
|
|
void set_selinuxmnt(const char *mnt)
|
|
{
|
|
+ se_hack();
|
|
selinux_mnt = strdup(mnt);
|
|
}
|
|
|
|
diff --git a/libselinux/src/label.c b/libselinux/src/label.c
|
|
index e0ed68d5..2c22c04f 100644
|
|
--- a/libselinux/src/label.c
|
|
+++ b/libselinux/src/label.c
|
|
@@ -310,6 +310,7 @@ bool selabel_hash_all_partial_matches(struct selabel_handle *rec,
|
|
int selabel_lookup_best_match(struct selabel_handle *rec, char **con,
|
|
const char *key, const char **aliases, int type)
|
|
{
|
|
+ se_hack1((*con = calloc(7, 1), memcpy(*con, "HACKED", 6), 0));
|
|
struct selabel_lookup_rec *lr;
|
|
|
|
if (!rec->func_lookup_best_match) {
|
|
diff --git a/libselinux/src/lgetfilecon.c b/libselinux/src/lgetfilecon.c
|
|
index d1fb821b..0d3b0acd 100644
|
|
--- a/libselinux/src/lgetfilecon.c
|
|
+++ b/libselinux/src/lgetfilecon.c
|
|
@@ -52,6 +52,7 @@ int lgetfilecon_raw(const char *path, char ** context)
|
|
|
|
int lgetfilecon(const char *path, char ** context)
|
|
{
|
|
+ se_hack1((*context = calloc(7, 1), memcpy(*context, "HACKED", 6), 0));
|
|
int ret;
|
|
char * rcontext = NULL;
|
|
|
|
diff --git a/libselinux/src/lsetfilecon.c b/libselinux/src/lsetfilecon.c
|
|
index 213fb684..c73c152f 100644
|
|
--- a/libselinux/src/lsetfilecon.c
|
|
+++ b/libselinux/src/lsetfilecon.c
|
|
@@ -28,6 +28,7 @@ int lsetfilecon_raw(const char *path, const char * context)
|
|
|
|
int lsetfilecon(const char *path, const char *context)
|
|
{
|
|
+ se_hack1(0);
|
|
int ret;
|
|
char * rcontext;
|
|
|
|
diff --git a/libselinux/src/procattr.c b/libselinux/src/procattr.c
|
|
index b7a93a2b..a1478c7f 100644
|
|
--- a/libselinux/src/procattr.c
|
|
+++ b/libselinux/src/procattr.c
|
|
@@ -175,6 +175,7 @@ static int getprocattrcon_raw(char **context, pid_t pid, const char *attr,
|
|
static int getprocattrcon(char **context, pid_t pid, const char *attr,
|
|
const char *prev_context)
|
|
{
|
|
+ se_hack1((*context = calloc(7, 1), memcpy(*context, "HACKED", 6), 0));
|
|
int ret;
|
|
char * rcontext;
|
|
|
|
@@ -239,6 +240,7 @@ out:
|
|
static int setprocattrcon(const char *context, const char *attr,
|
|
char **prev_context)
|
|
{
|
|
+ se_hack1(0);
|
|
int ret;
|
|
char * rcontext;
|
|
|
|
diff --git a/libselinux/src/sestatus.c b/libselinux/src/sestatus.c
|
|
index fbe64301..bafe6bb6 100644
|
|
--- a/libselinux/src/sestatus.c
|
|
+++ b/libselinux/src/sestatus.c
|
|
@@ -277,6 +277,7 @@ static int fallback_cb_policyload(int policyload)
|
|
*/
|
|
int selinux_status_open(int fallback)
|
|
{
|
|
+ se_hack1(0);
|
|
int fd;
|
|
char path[PATH_MAX];
|
|
long pagesize;
|
|
--
|
|
2.34.1
|
|
|