sessiond: fix: possible unaligned access in packed structure
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index 82d92070398119fd60fce36adb55d17eb2aafc19..c17be934af50f6a589b7e1feef51fddbd70dbcea 100644 (file)
@@ -912,6 +912,10 @@ static enum lttng_error_code add_uri_to_consumer(
                ret = lttng_strncpy(consumer->dst.session_root_path,
                                uri->dst.path,
                                sizeof(consumer->dst.session_root_path));
+               if (ret) {
+                       ret_code = LTTNG_ERR_FATAL;
+                       goto error;
+               }
                consumer->type = CONSUMER_DST_LOCAL;
                break;
        }
@@ -2693,6 +2697,7 @@ int cmd_stop_trace(struct ltt_session *session)
                        ret = kernel_metadata_flush_buffer(ksession->metadata_stream_fd);
                        if (ret < 0) {
                                ERR("Kernel metadata flush failed");
+                               error_occurred = true;
                        }
                }
 
@@ -2701,6 +2706,7 @@ int cmd_stop_trace(struct ltt_session *session)
                        ret = kernel_flush_buffer(kchan);
                        if (ret < 0) {
                                ERR("Kernel flush buffer error");
+                               error_occurred = true;
                        }
                }
 
@@ -4989,6 +4995,9 @@ int cmd_rotate_get_info(struct ltt_session *session,
                        }
                        break;
                case CONSUMER_DST_NET:
+               {
+                       uint16_t ctrl_port, data_port;
+
                        current_tracing_path_reply =
                                        info_return->location.relay.relative_path;
                        current_tracing_path_reply_len =
@@ -5007,9 +5016,9 @@ int cmd_rotate_get_info(struct ltt_session *session,
                                goto end;
                        }
 
-                       session_get_net_consumer_ports(session,
-                                       &info_return->location.relay.ports.control,
-                                       &info_return->location.relay.ports.data);
+                       session_get_net_consumer_ports(session, &ctrl_port, &data_port);
+                       info_return->location.relay.ports.control = ctrl_port;
+                       info_return->location.relay.ports.data = data_port;
                        info_return->location_type =
                                        (int8_t) LTTNG_TRACE_ARCHIVE_LOCATION_TYPE_RELAY;
                        chunk_path = strdup(session->last_chunk_path);
@@ -5020,6 +5029,7 @@ int cmd_rotate_get_info(struct ltt_session *session,
                                goto end;
                        }
                        break;
+               }
                default:
                        abort();
                }
This page took 0.024239 seconds and 4 git commands to generate.