X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Futils.c;h=f3cb9e0306e599a3b7aef48bce1812cfc7d6a03a;hb=94f73d0839c106a783f3c805aa74a2dbfb6bd5f5;hp=0147c8c994d3cb89f7fa936633863e043cdd2221;hpb=ce9ee1fb2847b1603c4382c82aef95121f0e3d07;p=lttng-tools.git diff --git a/src/common/utils.c b/src/common/utils.c index 0147c8c99..f3cb9e030 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -324,7 +324,7 @@ error: * The returned string was allocated in the function, it is thus of * the responsibility of the caller to free this memory. */ -LTTNG_HIDDEN +static char *_utils_expand_path(const char *path, bool keep_symlink) { int ret; @@ -682,21 +682,22 @@ LTTNG_HIDDEN int utils_mkdir(const char *path, mode_t mode, int uid, int gid) { int ret; - struct lttng_directory_handle handle; + struct lttng_directory_handle *handle; const struct lttng_credentials creds = { .uid = (uid_t) uid, .gid = (gid_t) gid, }; - ret = lttng_directory_handle_init(&handle, NULL); - if (ret) { + handle = lttng_directory_handle_create(NULL); + if (!handle) { + ret = -1; goto end; } ret = lttng_directory_handle_create_subdirectory_as_user( - &handle, path, mode, + handle, path, mode, (uid >= 0 || gid >= 0) ? &creds : NULL); - lttng_directory_handle_fini(&handle); end: + lttng_directory_handle_put(handle); return ret; } @@ -710,21 +711,22 @@ LTTNG_HIDDEN int utils_mkdir_recursive(const char *path, mode_t mode, int uid, int gid) { int ret; - struct lttng_directory_handle handle; + struct lttng_directory_handle *handle; const struct lttng_credentials creds = { .uid = (uid_t) uid, .gid = (gid_t) gid, }; - ret = lttng_directory_handle_init(&handle, NULL); - if (ret) { + handle = lttng_directory_handle_create(NULL); + if (!handle) { + ret = -1; goto end; } ret = lttng_directory_handle_create_subdirectory_recursive_as_user( - &handle, path, mode, + handle, path, mode, (uid >= 0 || gid >= 0) ? &creds : NULL); - lttng_directory_handle_fini(&handle); end: + lttng_directory_handle_put(handle); return ret; } @@ -1353,15 +1355,16 @@ LTTNG_HIDDEN int utils_recursive_rmdir(const char *path) { int ret; - struct lttng_directory_handle handle; + struct lttng_directory_handle *handle; - ret = lttng_directory_handle_init(&handle, NULL); - if (ret) { + handle = lttng_directory_handle_create(NULL); + if (!handle) { + ret = -1; goto end; } - ret = lttng_directory_handle_remove_subdirectory(&handle, path); - lttng_directory_handle_fini(&handle); + ret = lttng_directory_handle_remove_subdirectory(handle, path); end: + lttng_directory_handle_put(handle); return ret; }