aboutsummaryrefslogtreecommitdiffstats
path: root/guts/clone.c
diff options
context:
space:
mode:
Diffstat (limited to 'guts/clone.c')
-rw-r--r--guts/clone.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/guts/clone.c b/guts/clone.c
index 8299c54..b3400c7 100644
--- a/guts/clone.c
+++ b/guts/clone.c
@@ -12,21 +12,15 @@
* undo it later. UGH!
*/
pseudo_debug(1, "client resetting for clone(2) call\n");
- if (real_clone) {
- if (!pseudo_get_value("PSEUDO_RELOADED")) {
- pseudo_setupenv();
- pseudo_reinit_libpseudo();
- } else {
- pseudo_setupenv();
- pseudo_dropenv();
- }
- /* call the real syscall */
- rc = (*real_clone)(fn, child_stack, flags, arg, pid, tls, ctid);
+ if (!pseudo_get_value("PSEUDO_RELOADED")) {
+ pseudo_setupenv();
+ pseudo_reinit_libpseudo();
} else {
- /* rc was initialized to the "failure" value */
- pseudo_enosys("clone");
+ pseudo_setupenv();
+ pseudo_dropenv();
}
-
+ /* call the real syscall */
+ rc = (*real_clone)(fn, child_stack, flags, arg, pid, tls, ctid);
/* ...
* return rc;
* }