Fix: report error to client on consumerd error
[lttng-tools.git] / src / common / runas.c
index e230774df442134ddbf45185a080806c4974f85f..2c2015aa2d5b8206bca9052320553f8da78d431d 100644 (file)
 
 #define RUNAS_CHILD_STACK_SIZE 10485760
 
+#ifndef MAP_STACK
+#define MAP_STACK              0
+#endif
+
 #ifdef __FreeBSD__
 /* FreeBSD MAP_STACK always return -ENOMEM */
 #define LTTNG_MAP_STACK                0
@@ -313,8 +317,13 @@ static
 int run_as(int (*cmd)(void *data), void *data, uid_t uid, gid_t gid)
 {
        if (!getenv("LTTNG_DEBUG_NOCLONE")) {
+               int ret;
+
                DBG("Using run_as_clone");
-               return run_as_clone(cmd, data, uid, gid);
+               pthread_mutex_lock(&lttng_libc_state_lock);
+               ret = run_as_clone(cmd, data, uid, gid);
+               pthread_mutex_unlock(&lttng_libc_state_lock);
+               return ret;
        } else {
                DBG("Using run_as_noclone");
                return run_as_noclone(cmd, data, uid, gid);
This page took 0.02336 seconds and 4 git commands to generate.