diff options
Diffstat (limited to 'templates/wrapfuncs.c')
-rw-r--r-- | templates/wrapfuncs.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/templates/wrapfuncs.c b/templates/wrapfuncs.c index 3859183..93bb671 100644 --- a/templates/wrapfuncs.c +++ b/templates/wrapfuncs.c @@ -60,9 +60,15 @@ ${maybe_async_skip} ${rc_assign} (*real_${name})(${call_args}); } else { ${fix_paths} - /* exec*() use this to restore the sig mask */ - pseudo_saved_sigmask = saved; - ${rc_assign} wrap_$name(${call_args}); + if (${ignore_paths}) { + /* call the real syscall */ + pseudo_debug(PDBGF_SYSCALL, "${name} ignored path, calling real syscall.\n"); + ${rc_assign} (*real_${name})(${call_args}); + } else { + /* exec*() use this to restore the sig mask */ + pseudo_saved_sigmask = saved; + ${rc_assign} wrap_$name(${call_args}); + } } ${variadic_end} save_errno = errno; |