From b682a3edeec25b6a70fb1c7a75995bcdd638cc9a Mon Sep 17 00:00:00 2001 From: Topi Miettinen Date: Tue, 1 Aug 2017 00:22:34 +0300 Subject: Fix tracing with private-lib --- src/firejail/fs_lib.c | 6 ++++++ src/firejail/fs_trace.c | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/firejail/fs_lib.c b/src/firejail/fs_lib.c index cc60a330f..19e900a4b 100644 --- a/src/firejail/fs_lib.c +++ b/src/firejail/fs_lib.c @@ -185,6 +185,12 @@ void fs_private_lib(void) { fs_logger_print(); } + // for our trace and tracelog libs + if (arg_trace) + duplicate(LIBDIR "/firejail/libtrace.so", RUN_LIB_DIR); + else if (arg_tracelog) + duplicate(LIBDIR "/firejail/libtracelog.so", RUN_LIB_DIR); + if (arg_debug) printf("Mount-bind %s on top of /lib /lib64 /usr/lib\n", RUN_LIB_DIR); if (mount(RUN_LIB_DIR, "/lib", NULL, MS_BIND|MS_REC, NULL) < 0 || diff --git a/src/firejail/fs_trace.c b/src/firejail/fs_trace.c index f964c05d0..df76f4fe1 100644 --- a/src/firejail/fs_trace.c +++ b/src/firejail/fs_trace.c @@ -51,11 +51,15 @@ void fs_trace(void) { FILE *fp = fopen(RUN_LDPRELOAD_FILE, "w"); if (!fp) errExit("fopen"); + const char *prefix = LIBDIR "/firejail"; + if (arg_private_lib) + prefix = RUN_LIB_DIR; + if (arg_trace) { - fprintf(fp, "%s/firejail/libtrace.so\n", LIBDIR); + fprintf(fp, "%s/libtrace.so\n", prefix); } else if (arg_tracelog) { - fprintf(fp, "%s/firejail/libtracelog.so\n", LIBDIR); + fprintf(fp, "%s/libtracelog.so\n", prefix); if (!arg_quiet) printf("Blacklist violations are logged to syslog\n"); } -- cgit v1.2.3-54-g00ecf