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 4cfa60067f2ae31a72b2f97b9cce55437d2cdc20..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"
@@
-92,7
+93,11
@@
static int setup_lttng_msg(struct command_ctx *cmd_ctx,
.data_size = payload_len,
};
.data_size = payload_len,
};
- lttng_dynamic_buffer_set_size(&cmd_ctx->reply_payload.buffer, 0);
+ ret = lttng_dynamic_buffer_set_size(&cmd_ctx->reply_payload.buffer, 0);
+ if (ret) {
+ goto end;
+ }
+
lttng_dynamic_pointer_array_clear(&cmd_ctx->reply_payload._fd_handles);
cmd_ctx->lttng_msg_size = total_msg_size;
lttng_dynamic_pointer_array_clear(&cmd_ctx->reply_payload._fd_handles);
cmd_ctx->lttng_msg_size = total_msg_size;
@@
-575,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++;
}
@@
-1102,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;
@@
-1279,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
@@
-1289,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.025271 seconds
and
4
git commands to generate.