todo: modpost undefined errors
This commit is contained in:
@@ -126,8 +126,8 @@ static int load_elf(struct linux_binprm *bprm
|
||||
if(st == 0){
|
||||
off = p & ~PAGE_MASK;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
|
||||
rc = get_user_pages_remote(current, bprm->mm,
|
||||
bprm->p, 1, FOLL_FORCE, &page, NULL, NULL);
|
||||
rc = get_user_pages_remote(bprm->mm,
|
||||
bprm->p, 1, FOLL_FORCE, &page, NULL);
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)
|
||||
rc = get_user_pages_remote(current, bprm->mm,
|
||||
bprm->p, 1, FOLL_FORCE, &page, NULL);
|
||||
@@ -234,7 +234,7 @@ static int load_elf(struct linux_binprm *bprm
|
||||
kfree(pbuf);
|
||||
return rc;
|
||||
}
|
||||
rc = copy_strings_kernel(1, &bprm->interp, bprm);
|
||||
rc = copy_string_kernel(bprm->interp, bprm);
|
||||
if (rc < 0){
|
||||
fput(file);
|
||||
kfree(pbuf);
|
||||
@@ -242,7 +242,7 @@ static int load_elf(struct linux_binprm *bprm
|
||||
}
|
||||
bprm->argc++;
|
||||
wp = MCEXEC_PATH;
|
||||
rc = copy_strings_kernel(1, &wp, bprm);
|
||||
rc = copy_string_kernel(wp, bprm);
|
||||
if (rc){
|
||||
fput(file);
|
||||
kfree(pbuf);
|
||||
@@ -260,19 +260,25 @@ static int load_elf(struct linux_binprm *bprm
|
||||
fput(bprm->file);
|
||||
bprm->file = file;
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0)
|
||||
rc = prepare_binprm(bprm);
|
||||
if (rc < 0){
|
||||
kfree(pbuf);
|
||||
return rc;
|
||||
}
|
||||
#endif
|
||||
|
||||
kfree(pbuf);
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0)
|
||||
return search_binary_handler(bprm
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0)
|
||||
, regs
|
||||
#endif
|
||||
);
|
||||
#else
|
||||
return -ENOEXEC;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct linux_binfmt mcexec_format = {
|
||||
|
||||
Reference in New Issue
Block a user