#include <string.h>
#include <dlfcn.h>
+#include "log.h"
#include "seccomp.h"
#include "../preload.h"
static main_t __main__;
+int debug;
static int __preload_main__(int argc, char **argv, char **envp)
{
char *env_file = getenv("SECCOMP_FILE");
+ char *env_debug = getenv("SECCOMP_DEBUG");
if (!env_file || !env_file[0]) {
ERROR("SECCOMP_FILE not specified\n");
return -1;
}
+ if (env_debug)
+ debug = atoi(env_debug);
+ else
+ debug = 0;
+
if (install_syscall_filter(*argv, env_file))
return -1;
unsetenv("LD_PRELOAD");
+ unsetenv("SECCOMP_DEBUG");
unsetenv("SECCOMP_FILE");
return (*__main__)(argc, argv, envp);
start_main_t __start_main__;
__start_main__ = dlsym(RTLD_NEXT, "__libc_start_main");
- if (!__start_main__)
+ if (!__start_main__) {
INFO("failed to find __libc_start_main %s\n", dlerror());
+ return -1;
+ }
__main__ = main;
uClibc_main __start_main__;
__start_main__ = dlsym(RTLD_NEXT, "__uClibc_main");
- if (!__start_main__)
+ if (!__start_main__) {
INFO("failed to find __uClibc_main %s\n", dlerror());
+ return;
+ }
__main__ = main;