X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fsession.c;h=146a5dffc476df4a36956eef961fd12419087679;hb=fd5f765ddad09f7f0395544bfa2b4ea5f624966a;hp=827746430712e098d028f8a8105ab881cdf336ed;hpb=2b847234774ea3cb6999ae9b2e6a1c4c9b2188dd;p=lttng-tools.git diff --git a/src/bin/lttng-relayd/session.c b/src/bin/lttng-relayd/session.c index 827746430..146a5dffc 100644 --- a/src/bin/lttng-relayd/session.c +++ b/src/bin/lttng-relayd/session.c @@ -181,17 +181,21 @@ struct relay_session *session_create(const char *session_name, int ret; struct relay_session *session = NULL; - if (session_name && strstr(session_name, ".")) { + assert(session_name); + assert(hostname); + assert(base_path); + + if (strstr(session_name, ".")) { ERR("Illegal character in session name: \"%s\"", session_name); goto error; } - if (base_path && strstr(base_path, "../")) { + if (strstr(base_path, "../")) { ERR("Invalid session base path walks up the path hierarchy: \"%s\"", base_path); goto error; } - if (hostname && strstr(hostname, ".")) { + if (strstr(hostname, ".")) { ERR("Invalid character in hostname: \"%s\"", hostname); goto error; @@ -202,6 +206,17 @@ struct relay_session *session_create(const char *session_name, PERROR("Failed to allocate session"); goto error; } + + pthread_mutex_lock(&last_relay_session_id_lock); + session->id = ++last_relay_session_id; + pthread_mutex_unlock(&last_relay_session_id_lock); + + lttng_ht_node_init_u64(&session->session_n, session->id); + urcu_ref_init(&session->ref); + CDS_INIT_LIST_HEAD(&session->recv_list); + pthread_mutex_init(&session->lock, NULL); + pthread_mutex_init(&session->recv_list_lock, NULL); + if (lttng_strncpy(session->session_name, session_name, sizeof(session->session_name))) { WARN("Session name exceeds maximal allowed length"); @@ -228,17 +243,8 @@ struct relay_session *session_create(const char *session_name, goto error; } - pthread_mutex_lock(&last_relay_session_id_lock); - session->id = ++last_relay_session_id; - pthread_mutex_unlock(&last_relay_session_id_lock); - session->major = major; session->minor = minor; - lttng_ht_node_init_u64(&session->session_n, session->id); - urcu_ref_init(&session->ref); - CDS_INIT_LIST_HEAD(&session->recv_list); - pthread_mutex_init(&session->lock, NULL); - pthread_mutex_init(&session->recv_list_lock, NULL); session->live_timer = live_timer; session->snapshot = snapshot;