X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Frunas.c;h=4bb45b0453ceba40f6e219d84b14d5b01792479b;hb=a0377dfefe40662ba7d68617bce6ff467114136c;hp=db95429b4a0a43ef13aaacf890c726c93e0ed79c;hpb=45d6ecaaee3b2dd4d72f8de54a21ba2290f3b756;p=lttng-tools.git diff --git a/src/common/runas.c b/src/common/runas.c index db95429b4..4bb45b045 100644 --- a/src/common/runas.c +++ b/src/common/runas.c @@ -8,7 +8,6 @@ */ #define _LGPL_SOURCE -#include #include #include #include @@ -907,14 +906,15 @@ static int get_user_infos_from_uid( { int ret; char *buf = NULL; - size_t buf_size; + long raw_get_pw_buf_size; + size_t get_pw_buf_size; struct passwd pwd; struct passwd *result = NULL; /* Fetch the max size for the temporary buffer. */ errno = 0; - buf_size = sysconf(_SC_GETPW_R_SIZE_MAX); - if (buf_size < 0) { + raw_get_pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX); + if (raw_get_pw_buf_size < 0) { if (errno != 0) { PERROR("Failed to query _SC_GETPW_R_SIZE_MAX"); goto error; @@ -923,16 +923,18 @@ static int get_user_infos_from_uid( /* Limit is indeterminate. */ WARN("Failed to query _SC_GETPW_R_SIZE_MAX as it is " "indeterminate; falling back to default buffer size"); - buf_size = GETPW_BUFFER_FALLBACK_SIZE; + raw_get_pw_buf_size = GETPW_BUFFER_FALLBACK_SIZE; } - buf = zmalloc(buf_size); + get_pw_buf_size = (size_t) raw_get_pw_buf_size; + + buf = zmalloc(get_pw_buf_size); if (buf == NULL) { PERROR("Failed to allocate buffer to get password file entries"); goto error; } - ret = getpwuid_r(uid, &pwd, buf, buf_size, &result); + ret = getpwuid_r(uid, &pwd, buf, get_pw_buf_size, &result); if (ret < 0) { PERROR("Failed to get user information for user: uid = %d", (int) uid); @@ -1445,7 +1447,7 @@ int run_as_create_worker_no_lock(const char *procname, struct run_as_ret recvret; struct run_as_worker *worker; - assert(!global_worker); + LTTNG_ASSERT(!global_worker); if (!use_clone()) { /* * Don't initialize a worker, all run_as tasks will be performed @@ -1639,7 +1641,7 @@ int run_as(enum run_as_cmd cmd, struct run_as_data *data, if (use_clone()) { DBG("Using run_as worker"); - assert(global_worker); + LTTNG_ASSERT(global_worker); ret = run_as_cmd(global_worker, cmd, data, ret_value, uid, gid); saved_errno = ret_value->_errno;