todo: modpost undefined errors

This commit is contained in:
2025-08-23 11:02:25 +08:00
parent 64dbb93260
commit 9ae3a3f374
6 changed files with 93 additions and 70 deletions

View File

@@ -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 = {