kernel: optimize uid list reading

This commit is contained in:
weishu 2023-12-27 19:33:25 +08:00
parent 26da7d590e
commit fe7f509f9d

View File

@ -56,7 +56,7 @@ static void do_update_uid(struct work_struct *work)
char chr = 0;
loff_t pos = 0;
loff_t line_start = 0;
char buf[128];
char buf[KSU_MAX_PACKAGE_NAME];
for (;;) {
ssize_t count =
ksu_kernel_read_compat(fp, &chr, sizeof(chr), &pos);
@ -69,7 +69,7 @@ static void do_update_uid(struct work_struct *work)
&line_start);
struct uid_data *data =
kmalloc(sizeof(struct uid_data), GFP_ATOMIC);
kzalloc(sizeof(struct uid_data), GFP_ATOMIC);
if (!data) {
goto out;
}
@ -80,13 +80,13 @@ static void do_update_uid(struct work_struct *work)
char *uid = strsep(&tmp, delim);
if (!uid || !package) {
pr_err("update_uid: package or uid is NULL!\n");
continue;
break;
}
u32 res;
if (kstrtou32(uid, 10, &res)) {
pr_err("update_uid: uid parse err\n");
continue;
break;
}
data->uid = res;
strncpy(data->package, package, KSU_MAX_PACKAGE_NAME);