diff options
Diffstat (limited to 'guts/clone.c')
-rw-r--r-- | guts/clone.c | 20 |
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; * } |