diff options
Diffstat (limited to 'libsandbox/wrapper-funcs')
-rw-r--r-- | libsandbox/wrapper-funcs/__wrapper_simple.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/libsandbox/wrapper-funcs/__wrapper_simple.c b/libsandbox/wrapper-funcs/__wrapper_simple.c index b4f0328..8aaf612 100644 --- a/libsandbox/wrapper-funcs/__wrapper_simple.c +++ b/libsandbox/wrapper-funcs/__wrapper_simple.c @@ -21,15 +21,24 @@ extern WRAPPER_RET_TYPE EXTERN_NAME(WRAPPER_ARGS_PROTO); static WRAPPER_RET_TYPE (*WRAPPER_TRUE_NAME)(WRAPPER_ARGS_PROTO) = NULL; +#ifndef SB_HIDDEN_FUNC +# define _SB_HIDDEN_FUNC(x) sb_unwrapped_##x +# define SB_HIDDEN_FUNC(x) _SB_HIDDEN_FUNC(x) +#endif +attribute_hidden +WRAPPER_RET_TYPE SB_HIDDEN_FUNC(WRAPPER_NAME)(WRAPPER_ARGS_PROTO) +{ + check_dlsym(WRAPPER_TRUE_NAME, WRAPPER_SYMNAME, WRAPPER_SYMVER); + return WRAPPER_TRUE_NAME(WRAPPER_ARGS); +} + WRAPPER_RET_TYPE WRAPPER_NAME(WRAPPER_ARGS_PROTO) { WRAPPER_RET_TYPE result = WRAPPER_RET_DEFAULT; if (WRAPPER_PRE_CHECKS()) - if (WRAPPER_SAFE()) { - check_dlsym(WRAPPER_TRUE_NAME, WRAPPER_SYMNAME, WRAPPER_SYMVER); - result = WRAPPER_TRUE_NAME(WRAPPER_ARGS); - } + if (WRAPPER_SAFE()) + result = SB_HIDDEN_FUNC(WRAPPER_NAME)(WRAPPER_ARGS); return result; } |