X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Frunas.cpp;h=2c762d5ee797f3a98c92f1f59527a1a9ae92f37c;hb=a9cfc0f36bf8ade64df08392b03a9f15409dc01b;hp=eae650ba5038b9a09ab028709adaad6f7b41dc89;hpb=4eac90eb7d8428fc6c5a75d3f0e795844fb6c574;p=lttng-tools.git diff --git a/src/common/runas.cpp b/src/common/runas.cpp index eae650ba5..2c762d5ee 100644 --- a/src/common/runas.cpp +++ b/src/common/runas.cpp @@ -22,31 +22,27 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include +#include +#include -#include "runas.h" +#include "runas.hpp" #define GETPW_BUFFER_FALLBACK_SIZE 4096 -struct run_as_data; -struct run_as_ret; -typedef int (*run_as_fct)(struct run_as_data *data, struct run_as_ret *ret_value); - enum run_as_cmd { RUN_AS_MKDIR, RUN_AS_MKDIRAT, @@ -67,6 +63,11 @@ enum run_as_cmd { RUN_AS_GENERATE_FILTER_BYTECODE, }; +namespace { +struct run_as_data; +struct run_as_ret; +typedef int (*run_as_fct)(struct run_as_data *data, struct run_as_ret *ret_value); + struct run_as_mkdir_data { int dirfd; char path[LTTNG_PATH_MAX]; @@ -210,7 +211,7 @@ struct run_as_command_properties { bool use_cwd_fd; }; -static const struct run_as_command_properties command_properties[] = { +const struct run_as_command_properties command_properties[] = { { .in_fds_offset = offsetof(struct run_as_data, u.mkdir.dirfd), .out_fds_offset = -1, @@ -341,9 +342,10 @@ struct run_as_worker_data { }; /* Single global worker per process (for now). */ -static run_as_worker_data *global_worker; +run_as_worker_data *global_worker; /* Lock protecting the worker. */ -static pthread_mutex_t worker_lock = PTHREAD_MUTEX_INITIALIZER; +pthread_mutex_t worker_lock = PTHREAD_MUTEX_INITIALIZER; +} /* namespace */ #ifdef VALGRIND static @@ -930,7 +932,7 @@ static int get_user_infos_from_uid( get_pw_buf_size = (size_t) raw_get_pw_buf_size; - buf = (char *) zmalloc(get_pw_buf_size); + buf = calloc(get_pw_buf_size); if (buf == NULL) { PERROR("Failed to allocate buffer to get password file entries"); goto error; @@ -1458,7 +1460,7 @@ int run_as_create_worker_no_lock(const char *procname, ret = 0; goto end; } - worker = (run_as_worker_data *) zmalloc(sizeof(*worker)); + worker = zmalloc(); if (!worker) { ret = -ENOMEM; goto end; @@ -1959,7 +1961,7 @@ int run_as_extract_sdt_probe_offsets(int fd, const char* provider_name, } *num_offset = run_as_ret.u.extract_sdt_probe_offsets.num_offset; - *offsets = (uint64_t *) zmalloc(*num_offset * sizeof(uint64_t)); + *offsets = calloc(*num_offset); if (!*offsets) { ret = -ENOMEM; goto error; @@ -2001,7 +2003,7 @@ int run_as_generate_filter_bytecode(const char *filter_expression, view_bytecode = (const struct lttng_bytecode *) run_as_ret.u.generate_filter_bytecode.bytecode; - local_bytecode = (lttng_bytecode *) zmalloc(sizeof(*local_bytecode) + view_bytecode->len); + local_bytecode = calloc(view_bytecode->len); if (!local_bytecode) { ret = -ENOMEM; goto error;