From 72c4aa8d9f0f96c3c58c5d3d1f50066b386f0924 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 18 Feb 2009 01:44:51 -0500 Subject: libsandbox: create hidden targets for most functions In case we want to access a standard function unwrapped, create hidden functions that do just that. This creates a standard for most functions of the form sb_unwrapped_foo(). Signed-off-by: Mike Frysinger --- libsandbox/wrapper-funcs/__wrapper_simple.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'libsandbox/wrapper-funcs') 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; } -- cgit v1.2.3-65-gdbad