[skip ci] kernel: move is_ksu_transition to selinux.c

* SELinux stuff on ksud? Does something like this is offtopic?

Signed-off-by: rsuntk <90097027+rsuntk@users.noreply.github.com>
This commit is contained in:
rsuntk
2025-06-11 15:03:17 +00:00
committed by ShirkNeko
parent 02629db24b
commit 8359bc5890
2 changed files with 21 additions and 22 deletions

View File

@@ -40,6 +40,27 @@ static int transive_to_domain(const char *domain)
return error;
}
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
bool __maybe_unused is_ksu_transition(const struct task_security_struct *old_tsec,
const struct task_security_struct *new_tsec)
{
static u32 ksu_sid;
char *secdata;
u32 seclen;
bool allowed = false;
if (!ksu_sid)
security_secctx_to_secid("u:r:su:s0", strlen("u:r:su:s0"), &ksu_sid);
if (security_secid_to_secctx(old_tsec->sid, &secdata, &seclen))
return false;
allowed = (!strcmp("u:r:init:s0", secdata) && new_tsec->sid == ksu_sid);
security_release_secctx(secdata, seclen);
return allowed;
}
#endif
void setup_selinux(const char *domain)
{
if (transive_to_domain(domain)) {