diff options
Diffstat (limited to 'guts')
-rw-r--r-- | guts/clone.c | 4 | ||||
-rw-r--r-- | guts/execv.c | 4 | ||||
-rw-r--r-- | guts/execve.c | 4 | ||||
-rw-r--r-- | guts/execvp.c | 4 | ||||
-rw-r--r-- | guts/fork.c | 2 |
5 files changed, 12 insertions, 6 deletions
diff --git a/guts/clone.c b/guts/clone.c index 61c8bf9..8299c54 100644 --- a/guts/clone.c +++ b/guts/clone.c @@ -14,8 +14,8 @@ pseudo_debug(1, "client resetting for clone(2) call\n"); if (real_clone) { if (!pseudo_get_value("PSEUDO_RELOADED")) { - pseudo_setupenv(); - pseudo_client_reinit(); + pseudo_setupenv(); + pseudo_reinit_libpseudo(); } else { pseudo_setupenv(); pseudo_dropenv(); diff --git a/guts/execv.c b/guts/execv.c index cc37e0a..a72556b 100644 --- a/guts/execv.c +++ b/guts/execv.c @@ -12,7 +12,9 @@ * <CHROOT>/bin/sh. This allows use of basic utilities. This * design will likely be revisited. */ - pseudo_client_op(OP_EXEC, PSA_EXEC, -1, -1, file, 0); + if (antimagic == 0) { + pseudo_client_op(OP_EXEC, PSA_EXEC, -1, -1, file, 0); + } if (!pseudo_get_value("PSEUDO_RELOADED")) pseudo_setupenv(); diff --git a/guts/execve.c b/guts/execve.c index febcf80..fafc154 100644 --- a/guts/execve.c +++ b/guts/execve.c @@ -13,7 +13,9 @@ * <CHROOT>/bin/sh. This allows use of basic utilities. This * design will likely be revisited. */ - pseudo_client_op(OP_EXEC, PSA_EXEC, -1, -1, file, 0); + if (antimagic == 0) { + pseudo_client_op(OP_EXEC, PSA_EXEC, -1, -1, file, 0); + } if (!pseudo_get_value("PSEUDO_RELOADED")) new_environ = pseudo_setupenvp(envp); diff --git a/guts/execvp.c b/guts/execvp.c index 67eaff0..a3ce05b 100644 --- a/guts/execvp.c +++ b/guts/execvp.c @@ -13,7 +13,9 @@ * <CHROOT>/bin/sh. This allows use of basic utilities. This * design will likely be revisited. */ - pseudo_client_op(OP_EXEC, PSA_EXEC, -1, -1, file, 0); + if (antimagic == 0) { + pseudo_client_op(OP_EXEC, PSA_EXEC, -1, -1, file, 0); + } if (!pseudo_get_value("PSEUDO_RELOADED")) pseudo_setupenv(); diff --git a/guts/fork.c b/guts/fork.c index 8febd13..b7fd239 100644 --- a/guts/fork.c +++ b/guts/fork.c @@ -14,7 +14,7 @@ if (rc == 0) { if (!pseudo_get_value("PSEUDO_RELOADED")) { pseudo_setupenv(); - pseudo_client_reinit(); + pseudo_reinit_libpseudo(); } else { pseudo_setupenv(); pseudo_dropenv(); |