X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lttng-sessiond%2Fust-app.c;h=12e9572455d8385b3cc406fce5be8bef67a4357e;hb=daf282ab93462198c6acd16b4aa624635df1bea5;hp=1b5d6fbf136ff4c29cf133a41ce9b945eee64868;hpb=a991f516ac2783c833ebbc6ac0ac3c0e4ca71371;p=lttng-tools.git diff --git a/lttng-sessiond/ust-app.c b/lttng-sessiond/ust-app.c index 1b5d6fbf1..12e957245 100644 --- a/lttng-sessiond/ust-app.c +++ b/lttng-sessiond/ust-app.c @@ -25,12 +25,14 @@ #include #include #include +#include #include #include #include +#include -#include "hashtable.h" +#include "../common/hashtable.h" #include "ust-app.h" #include "ust-consumer.h" #include "ust-ctl.h" @@ -770,6 +772,8 @@ static void shadow_copy_session(struct ust_app_session *ua_sess, DBG2("Shadow copy of session handle %d", ua_sess->handle); ua_sess->id = usess->id; + ua_sess->uid = usess->uid; + ua_sess->gid = usess->gid; ret = snprintf(ua_sess->path, PATH_MAX, "%s/%s-%d-%s", @@ -1165,7 +1169,6 @@ static int create_ust_app_metadata(struct ust_app_session *ua_sess, char *pathname, struct ust_app *app) { int ret = 0; - mode_t old_umask; if (ua_sess->metadata == NULL) { /* Allocate UST metadata */ @@ -1191,13 +1194,12 @@ static int create_ust_app_metadata(struct ust_app_session *ua_sess, goto error; } - old_umask = umask(0); - ret = mkdir(ua_sess->path, S_IRWXU | S_IRWXG); + ret = mkdir_run_as(ua_sess->path, S_IRWXU | S_IRWXG, + ua_sess->uid, ua_sess->gid); if (ret < 0) { PERROR("mkdir UST metadata"); goto error; } - umask(old_umask); ret = snprintf(ua_sess->metadata->pathname, PATH_MAX, "%s/metadata", ua_sess->path);