kernel: add missing kfree, use proper return code
* This is half picked from 559be41482
* We haven't sync latest upstream changes yet
Signed-off-by: Faris <rissu.ntk@gmail.com>
This commit is contained in:
@@ -382,21 +382,20 @@ static void do_persistent_allow_list(struct callback_head *_cb)
|
|||||||
if (IS_ERR(fp)) {
|
if (IS_ERR(fp)) {
|
||||||
pr_err("save_allow_list create file failed: %ld\n",
|
pr_err("save_allow_list create file failed: %ld\n",
|
||||||
PTR_ERR(fp));
|
PTR_ERR(fp));
|
||||||
mutex_unlock(&allowlist_mutex);
|
goto unlock;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// store magic and version
|
// store magic and version
|
||||||
if (ksu_kernel_write_compat(fp, &magic, sizeof(magic), &off) !=
|
if (ksu_kernel_write_compat(fp, &magic, sizeof(magic), &off) !=
|
||||||
sizeof(magic)) {
|
sizeof(magic)) {
|
||||||
pr_err("save_allow_list write magic failed.\n");
|
pr_err("save_allow_list write magic failed.\n");
|
||||||
goto exit;
|
goto close_file;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ksu_kernel_write_compat(fp, &version, sizeof(version), &off) !=
|
if (ksu_kernel_write_compat(fp, &version, sizeof(version), &off) !=
|
||||||
sizeof(version)) {
|
sizeof(version)) {
|
||||||
pr_err("save_allow_list write version failed.\n");
|
pr_err("save_allow_list write version failed.\n");
|
||||||
goto exit;
|
goto close_file;
|
||||||
}
|
}
|
||||||
|
|
||||||
list_for_each (pos, &allow_list) {
|
list_for_each (pos, &allow_list) {
|
||||||
@@ -409,9 +408,11 @@ static void do_persistent_allow_list(struct callback_head *_cb)
|
|||||||
&off);
|
&off);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
close_file:
|
||||||
filp_close(fp, 0);
|
filp_close(fp, 0);
|
||||||
|
unlock:
|
||||||
mutex_unlock(&allowlist_mutex);
|
mutex_unlock(&allowlist_mutex);
|
||||||
|
kfree(_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
void persistent_allow_list(void)
|
void persistent_allow_list(void)
|
||||||
|
|||||||
@@ -348,7 +348,7 @@ static int do_set_feature(void __user *arg)
|
|||||||
static int do_get_wrapper_fd(void __user *arg)
|
static int do_get_wrapper_fd(void __user *arg)
|
||||||
{
|
{
|
||||||
if (!ksu_file_sid) {
|
if (!ksu_file_sid) {
|
||||||
return -1;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *anon_name = "[ksu_fdwrapper]";
|
const char *anon_name = "[ksu_fdwrapper]";
|
||||||
|
|||||||
Reference in New Issue
Block a user