aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libsandbox/wrapper-funcs')
-rw-r--r--libsandbox/wrapper-funcs/__wrapper_simple.c17
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;
}