X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Futils.c;h=1c2b95d3e7d5d3e427bc4c20f59ba4483062dea9;hp=54eed80bde14ad83228a090ce45638b0bba6c082;hb=be96a7d15e24cd8742c404cf3a76d14c75b00f06;hpb=e132a0d4a23036da549cb5d09ea9170183c45543 diff --git a/src/common/utils.c b/src/common/utils.c index 54eed80bd..1c2b95d3e 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -313,7 +313,7 @@ LTTNG_HIDDEN int utils_create_stream_file(char *path_name, char *file_name, uint64_t size, uint64_t count, int uid, int gid) { - int ret, out_fd; + int ret, out_fd, flags, mode; char full_path[PATH_MAX], *path_name_id = NULL, *path; assert(path_name); @@ -341,9 +341,15 @@ int utils_create_stream_file(char *path_name, char *file_name, uint64_t size, path = full_path; } + flags = O_WRONLY | O_CREAT | O_TRUNC; /* Open with 660 mode */ - out_fd = run_as_open(path, O_WRONLY | O_CREAT | O_TRUNC, - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, uid, gid); + mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP; + + if (uid < 0 || gid < 0) { + out_fd = open(path, flags, mode); + } else { + out_fd = run_as_open(path, flags, mode, uid, gid); + } if (out_fd < 0) { PERROR("open stream path %s", path); goto error_open;