From 968c3f7d57a7acb3ed1e6c834b27fa9bb2453b23 Mon Sep 17 00:00:00 2001 From: Faris Date: Fri, 7 Nov 2025 17:26:23 +0700 Subject: [PATCH] kernel: sepolicy: fix incompatible pointer type Signed-off-by: Faris --- kernel/selinux/rules.c | 52 +++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/kernel/selinux/rules.c b/kernel/selinux/rules.c index 57857529..e0de9526 100644 --- a/kernel/selinux/rules.c +++ b/kernel/selinux/rules.c @@ -238,22 +238,22 @@ int handle_sepolicy(unsigned long arg3, void __user *arg4) char perm_buf[MAX_SEPOL_LEN]; char *s, *t, *c, *p; - if (get_object(src_buf, data.sepol1, sizeof(src_buf), &s) < 0) { + if (get_object(src_buf, (void __user *)data.sepol1, sizeof(src_buf), &s) < 0) { pr_err("sepol: copy src failed.\n"); goto exit; } - if (get_object(tgt_buf, data.sepol2, sizeof(tgt_buf), &t) < 0) { + if (get_object(tgt_buf, (void __user *)data.sepol2, sizeof(tgt_buf), &t) < 0) { pr_err("sepol: copy tgt failed.\n"); goto exit; } - if (get_object(cls_buf, data.sepol3, sizeof(cls_buf), &c) < 0) { + if (get_object(cls_buf, (void __user *)data.sepol3, sizeof(cls_buf), &c) < 0) { pr_err("sepol: copy cls failed.\n"); goto exit; } - if (get_object(perm_buf, data.sepol4, sizeof(perm_buf), &p) < + if (get_object(perm_buf, (void __user *)data.sepol4, sizeof(perm_buf), &p) < 0) { pr_err("sepol: copy perm failed.\n"); goto exit; @@ -285,24 +285,24 @@ int handle_sepolicy(unsigned long arg3, void __user *arg4) char perm_set[MAX_SEPOL_LEN]; char *s, *t, *c; - if (get_object(src_buf, data.sepol1, sizeof(src_buf), &s) < 0) { + if (get_object(src_buf, (void __user *)data.sepol1, sizeof(src_buf), &s) < 0) { pr_err("sepol: copy src failed.\n"); goto exit; } - if (get_object(tgt_buf, data.sepol2, sizeof(tgt_buf), &t) < 0) { + if (get_object(tgt_buf, (void __user *)data.sepol2, sizeof(tgt_buf), &t) < 0) { pr_err("sepol: copy tgt failed.\n"); goto exit; } - if (get_object(cls_buf, data.sepol3, sizeof(cls_buf), &c) < 0) { + if (get_object(cls_buf, (void __user *)data.sepol3, sizeof(cls_buf), &c) < 0) { pr_err("sepol: copy cls failed.\n"); goto exit; } - if (strncpy_from_user(operation, data.sepol4, + if (strncpy_from_user(operation, (void __user *)data.sepol4, sizeof(operation)) < 0) { pr_err("sepol: copy operation failed.\n"); goto exit; } - if (strncpy_from_user(perm_set, data.sepol5, sizeof(perm_set)) < + if (strncpy_from_user(perm_set, (void __user *)data.sepol5, sizeof(perm_set)) < 0) { pr_err("sepol: copy perm_set failed.\n"); goto exit; @@ -324,7 +324,7 @@ int handle_sepolicy(unsigned long arg3, void __user *arg4) case CMD_TYPE_STATE: { char src[MAX_SEPOL_LEN]; - if (strncpy_from_user(src, data.sepol1, sizeof(src)) < 0) { + if (strncpy_from_user(src, (void __user *)data.sepol1, sizeof(src)) < 0) { pr_err("sepol: copy src failed.\n"); goto exit; } @@ -346,11 +346,11 @@ int handle_sepolicy(unsigned long arg3, void __user *arg4) char type[MAX_SEPOL_LEN]; char attr[MAX_SEPOL_LEN]; - if (strncpy_from_user(type, data.sepol1, sizeof(type)) < 0) { + if (strncpy_from_user(type, (void __user *)data.sepol1, sizeof(type)) < 0) { pr_err("sepol: copy type failed.\n"); goto exit; } - if (strncpy_from_user(attr, data.sepol2, sizeof(attr)) < 0) { + if (strncpy_from_user(attr, (void __user *)data.sepol2, sizeof(attr)) < 0) { pr_err("sepol: copy attr failed.\n"); goto exit; } @@ -371,7 +371,7 @@ int handle_sepolicy(unsigned long arg3, void __user *arg4) case CMD_ATTR: { char attr[MAX_SEPOL_LEN]; - if (strncpy_from_user(attr, data.sepol1, sizeof(attr)) < 0) { + if (strncpy_from_user(attr, (void __user *)data.sepol1, sizeof(attr)) < 0) { pr_err("sepol: copy attr failed.\n"); goto exit; } @@ -389,28 +389,28 @@ int handle_sepolicy(unsigned long arg3, void __user *arg4) char default_type[MAX_SEPOL_LEN]; char object[MAX_SEPOL_LEN]; - if (strncpy_from_user(src, data.sepol1, sizeof(src)) < 0) { + if (strncpy_from_user(src, (void __user *)data.sepol1, sizeof(src)) < 0) { pr_err("sepol: copy src failed.\n"); goto exit; } - if (strncpy_from_user(tgt, data.sepol2, sizeof(tgt)) < 0) { + if (strncpy_from_user(tgt, (void __user *)data.sepol2, sizeof(tgt)) < 0) { pr_err("sepol: copy tgt failed.\n"); goto exit; } - if (strncpy_from_user(cls, data.sepol3, sizeof(cls)) < 0) { + if (strncpy_from_user(cls, (void __user *)data.sepol3, sizeof(cls)) < 0) { pr_err("sepol: copy cls failed.\n"); goto exit; } - if (strncpy_from_user(default_type, data.sepol4, + if (strncpy_from_user(default_type, (void __user *)data.sepol4, sizeof(default_type)) < 0) { pr_err("sepol: copy default_type failed.\n"); goto exit; } char *real_object; - if (data.sepol5 == NULL) { + if ((void __user *)data.sepol5 == NULL) { real_object = NULL; } else { - if (strncpy_from_user(object, data.sepol5, + if (strncpy_from_user(object, (void __user *)data.sepol5, sizeof(object)) < 0) { pr_err("sepol: copy object failed.\n"); goto exit; @@ -430,19 +430,19 @@ int handle_sepolicy(unsigned long arg3, void __user *arg4) char cls[MAX_SEPOL_LEN]; char default_type[MAX_SEPOL_LEN]; - if (strncpy_from_user(src, data.sepol1, sizeof(src)) < 0) { + if (strncpy_from_user(src, (void __user *)data.sepol1, sizeof(src)) < 0) { pr_err("sepol: copy src failed.\n"); goto exit; } - if (strncpy_from_user(tgt, data.sepol2, sizeof(tgt)) < 0) { + if (strncpy_from_user(tgt, (void __user *)data.sepol2, sizeof(tgt)) < 0) { pr_err("sepol: copy tgt failed.\n"); goto exit; } - if (strncpy_from_user(cls, data.sepol3, sizeof(cls)) < 0) { + if (strncpy_from_user(cls, (void __user *)data.sepol3, sizeof(cls)) < 0) { pr_err("sepol: copy cls failed.\n"); goto exit; } - if (strncpy_from_user(default_type, data.sepol4, + if (strncpy_from_user(default_type, (void __user *)data.sepol4, sizeof(default_type)) < 0) { pr_err("sepol: copy default_type failed.\n"); goto exit; @@ -465,15 +465,15 @@ int handle_sepolicy(unsigned long arg3, void __user *arg4) char name[MAX_SEPOL_LEN]; char path[MAX_SEPOL_LEN]; char context[MAX_SEPOL_LEN]; - if (strncpy_from_user(name, data.sepol1, sizeof(name)) < 0) { + if (strncpy_from_user(name, (void __user *)data.sepol1, sizeof(name)) < 0) { pr_err("sepol: copy name failed.\n"); goto exit; } - if (strncpy_from_user(path, data.sepol2, sizeof(path)) < 0) { + if (strncpy_from_user(path, (void __user *)data.sepol2, sizeof(path)) < 0) { pr_err("sepol: copy path failed.\n"); goto exit; } - if (strncpy_from_user(context, data.sepol3, sizeof(context)) < + if (strncpy_from_user(context, (void __user *)data.sepol3, sizeof(context)) < 0) { pr_err("sepol: copy context failed.\n"); goto exit;