Fix: relayd: hostname check is too restrictive
[lttng-tools.git] / src / bin / lttng-relayd / cmd-2-11.c
index c513130ab6fa40709a95151c885a9479cac80d87..4b6f39120db0b84cd1170880c27750d854436877 100644 (file)
@@ -34,7 +34,8 @@ int cmd_create_session_2_11(const struct lttng_buffer_view *payload,
                uint32_t *live_timer, bool *snapshot,
                uint64_t *id_sessiond, lttng_uuid sessiond_uuid,
                bool *has_current_chunk, uint64_t *current_chunk_id,
-               time_t *creation_time)
+               time_t *creation_time,
+               bool *session_name_contains_creation_time)
 {
        int ret;
        struct lttcomm_relayd_create_session_2_11 header;
@@ -77,6 +78,10 @@ int cmd_create_session_2_11(const struct lttng_buffer_view *payload,
                ret = -ENAMETOOLONG;
                ERR("Length of session name (%" PRIu32 " bytes) received in create_session command exceeds maximum length (%d bytes)", header.session_name_len, LTTNG_NAME_MAX);
                goto error;
+       } else if (header.session_name_len == 0) {
+               ret = -EINVAL;
+               ERR("Illegal session name length of 0 received");
+               goto error;
        }
        if (header.hostname_len > LTTNG_HOST_NAME_MAX) {
                ret = -ENAMETOOLONG;
@@ -132,6 +137,8 @@ int cmd_create_session_2_11(const struct lttng_buffer_view *payload,
        *current_chunk_id = header.current_chunk_id.value;
        *has_current_chunk = header.current_chunk_id.is_set;
        *creation_time = (time_t) header.creation_time;
+       *session_name_contains_creation_time =
+               header.session_name_contains_creation_time;
 
        ret = 0;
 
This page took 0.025607 seconds and 4 git commands to generate.