Loading scripts/patches/syscall_intercept_clone3.patch 0 → 100644 +14 −0 Original line number Diff line number Diff line diff --git a/src/intercept.c b/src/intercept.c index 41fd95d..c0cd865 100644 --- a/src/intercept.c +++ b/src/intercept.c @@ -689,7 +689,8 @@ intercept_routine(struct context *context) * the clone_child_intercept_routine instead, executing * it on the new child threads stack, then returns to libc. */ - if (desc.nr == SYS_clone && desc.args[1] != 0) + if ((desc.nr == SYS_clone || desc.nr == SYS_clone3) && + desc.args[1] != 0) return (struct wrapper_ret){ .rax = context->rax, .rdx = 2 }; else scripts/profiles/0.9.1/default.specs +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ clonedeps_args=( # Patches that should be applied post-clone clonedeps_patches=( ["syscall_intercept"]="syscall_intercept.patch" ["syscall_intercept"]="syscall_intercept.patch syscall_intercept_clone3.patch" ) # Ordering that MUST be followed when downloading Loading Loading
scripts/patches/syscall_intercept_clone3.patch 0 → 100644 +14 −0 Original line number Diff line number Diff line diff --git a/src/intercept.c b/src/intercept.c index 41fd95d..c0cd865 100644 --- a/src/intercept.c +++ b/src/intercept.c @@ -689,7 +689,8 @@ intercept_routine(struct context *context) * the clone_child_intercept_routine instead, executing * it on the new child threads stack, then returns to libc. */ - if (desc.nr == SYS_clone && desc.args[1] != 0) + if ((desc.nr == SYS_clone || desc.nr == SYS_clone3) && + desc.args[1] != 0) return (struct wrapper_ret){ .rax = context->rax, .rdx = 2 }; else
scripts/profiles/0.9.1/default.specs +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ clonedeps_args=( # Patches that should be applied post-clone clonedeps_patches=( ["syscall_intercept"]="syscall_intercept.patch" ["syscall_intercept"]="syscall_intercept.patch syscall_intercept_clone3.patch" ) # Ordering that MUST be followed when downloading Loading