Fix: unreported error in relay_close_trace_chunk
[lttng-tools.git] / src / bin / lttng-relayd / main.c
index 8e67f7664f6a44828cae6c2dd078b4c5d06b3ad9..62a5bd7cefc16026ff05f3e3741e4b4258837fd1 100644 (file)
@@ -1157,21 +1157,24 @@ send_reply:
                }
        } else {
                const uint32_t output_path_length =
-                               strlen(session->output_path) + 1;
+                               session ? strlen(session->output_path) + 1 : 0;
 
                reply.output_path_length = htobe32(output_path_length);
-               ret = lttng_dynamic_buffer_append(&reply_payload, &reply,
-                               sizeof(reply));
+               ret = lttng_dynamic_buffer_append(
+                               &reply_payload, &reply, sizeof(reply));
                if (ret) {
                        ERR("Failed to append \"create session\" command reply header to payload buffer");
                        goto end;
                }
 
-               ret = lttng_dynamic_buffer_append(&reply_payload,
-                               session->output_path, output_path_length);
-               if (ret) {
-                       ERR("Failed to append \"create session\" command reply path to payload buffer");
-                       goto end;
+               if (output_path_length) {
+                       ret = lttng_dynamic_buffer_append(&reply_payload,
+                                       session->output_path,
+                                       output_path_length);
+                       if (ret) {
+                               ERR("Failed to append \"create session\" command reply path to payload buffer");
+                               goto end;
+                       }
                }
        }
 
@@ -2466,7 +2469,7 @@ static int relay_close_trace_chunk(const struct lttcomm_relayd_hdr *recv_hdr,
                struct relay_connection *conn,
                const struct lttng_buffer_view *payload)
 {
-       int ret = 0;
+       int ret = 0, buf_ret;
        ssize_t send_ret;
        struct relay_session *session = conn->session;
        struct lttcomm_relayd_close_trace_chunk *msg;
@@ -2627,17 +2630,17 @@ end_unlock_session:
 end:
        reply.generic.ret_code = htobe32((uint32_t) reply_code);
        reply.path_length = htobe32((uint32_t) path_length);
-       ret = lttng_dynamic_buffer_append(
+       buf_ret = lttng_dynamic_buffer_append(
                        &reply_payload, &reply, sizeof(reply));
-       if (ret) {
+       if (buf_ret) {
                ERR("Failed to append \"close trace chunk\" command reply header to payload buffer");
                goto end_no_reply;
        }
 
        if (reply_code == LTTNG_OK) {
-               ret = lttng_dynamic_buffer_append(&reply_payload,
+               buf_ret = lttng_dynamic_buffer_append(&reply_payload,
                                closed_trace_chunk_path, path_length);
-               if (ret) {
+               if (buf_ret) {
                        ERR("Failed to append \"close trace chunk\" command reply path to payload buffer");
                        goto end_no_reply;
                }
This page took 0.025197 seconds and 4 git commands to generate.