projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
port: run namespace tests only on Linux
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
client.c
diff --git
a/src/bin/lttng-sessiond/client.c
b/src/bin/lttng-sessiond/client.c
index 689dc258a604cff0f3d7816f72ff8778523f8cd5..d7db03fa76981f38ac60b3eb9e78579c9512fa4b 100644
(file)
--- a/
src/bin/lttng-sessiond/client.c
+++ b/
src/bin/lttng-sessiond/client.c
@@
-31,6
+31,7
@@
#include <signal.h>
#include <stddef.h>
#include <sys/stat.h>
#include <signal.h>
#include <stddef.h>
#include <sys/stat.h>
+#include <unistd.h>
#include "client.h"
#include "lttng-sessiond.h"
#include "client.h"
#include "lttng-sessiond.h"
@@
-579,15
+580,14
@@
static unsigned int lttng_sessions_count(uid_t uid, gid_t gid)
struct ltt_session *session;
const struct ltt_session_list *session_list = session_get_list();
struct ltt_session *session;
const struct ltt_session_list *session_list = session_get_list();
- DBG("Counting number of available session for UID %d GID %d",
- uid, gid);
+ DBG("Counting number of available session for UID %d", uid);
cds_list_for_each_entry(session, &session_list->head, list) {
if (!session_get(session)) {
continue;
}
session_lock(session);
/* Only count the sessions the user can control. */
cds_list_for_each_entry(session, &session_list->head, list) {
if (!session_get(session)) {
continue;
}
session_lock(session);
/* Only count the sessions the user can control. */
- if (session_access_ok(session, uid
, gid
) &&
+ if (session_access_ok(session, uid) &&
!session->destroyed) {
i++;
}
!session->destroyed) {
i++;
}
@@
-1106,13
+1106,12
@@
skip_domain:
}
/*
}
/*
- * Check that the UID
or GID match
that of the tracing session.
+ * Check that the UID
matches
that of the tracing session.
* The root user can interact with all sessions.
*/
if (need_tracing_session) {
if (!session_access_ok(cmd_ctx->session,
* The root user can interact with all sessions.
*/
if (need_tracing_session) {
if (!session_access_ok(cmd_ctx->session,
- LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds),
- LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds)) ||
+ LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds)) ||
cmd_ctx->session->destroyed) {
ret = LTTNG_ERR_EPERM;
goto error;
cmd_ctx->session->destroyed) {
ret = LTTNG_ERR_EPERM;
goto error;
@@
-1283,9
+1282,17
@@
error_add_context:
.value_type;
struct process_attr_value *value;
enum lttng_error_code ret_code;
.value_type;
struct process_attr_value *value;
enum lttng_error_code ret_code;
+ long login_name_max;
+
+ login_name_max = sysconf(_SC_LOGIN_NAME_MAX);
+ if (login_name_max < 0) {
+ PERROR("Failed to get _SC_LOGIN_NAME_MAX system configuration");
+ ret = LTTNG_ERR_INVALID;
+ goto error;
+ }
/* Receive remaining variable length payload if applicable. */
/* Receive remaining variable length payload if applicable. */
- if (name_len >
LOGIN_NAME_MAX
) {
+ if (name_len >
login_name_max
) {
/*
* POSIX mandates user and group names that are at least
* 8 characters long. Note that although shadow-utils
/*
* POSIX mandates user and group names that are at least
* 8 characters long. Note that although shadow-utils
@@
-1293,9
+1300,9
@@
error_add_context:
* limit (from bits/utmp.h, UT_NAMESIZE),
* LOGIN_NAME_MAX is defined to 256.
*/
* limit (from bits/utmp.h, UT_NAMESIZE),
* LOGIN_NAME_MAX is defined to 256.
*/
- ERR("Rejecting process attribute tracker value %s as the provided exceeds the maximal allowed length: argument length = %zu, maximal length = %d",
+ ERR("Rejecting process attribute tracker value %s as the provided exceeds the maximal allowed length: argument length = %zu, maximal length = %
l
d",
add_value ? "addition" : "removal",
add_value ? "addition" : "removal",
- name_len,
LOGIN_NAME_MAX
);
+ name_len,
login_name_max
);
ret = LTTNG_ERR_INVALID;
goto error;
}
ret = LTTNG_ERR_INVALID;
goto error;
}
This page took
0.024976 seconds
and
4
git commands to generate.