send_stream.ctf_trace_id = htobe64(ctf_trace->id);
send_stream.metadata_flag = htobe32(
vstream->stream->is_metadata);
- strncpy(send_stream.path_name, vstream->path_name,
- sizeof(send_stream.path_name));
- strncpy(send_stream.channel_name, vstream->channel_name,
- sizeof(send_stream.channel_name));
+ if (lttng_strncpy(send_stream.path_name, vstream->path_name,
+ sizeof(send_stream.path_name))) {
+ pthread_mutex_unlock(&vstream->stream->lock);
+ viewer_stream_put(vstream);
+ ret = -1; /* Error. */
+ goto end_unlock;
+ }
+ if (lttng_strncpy(send_stream.channel_name,
+ vstream->channel_name,
+ sizeof(send_stream.channel_name))) {
+ pthread_mutex_unlock(&vstream->stream->lock);
+ viewer_stream_put(vstream);
+ ret = -1; /* Error. */
+ goto end_unlock;
+ }
DBG("Sending stream %" PRIu64 " to viewer",
vstream->stream->stream_handle);
buf_count = new_buf_count;
}
send_session = &send_session_buf[count];
- strncpy(send_session->session_name, session->session_name,
- sizeof(send_session->session_name));
- strncpy(send_session->hostname, session->hostname,
- sizeof(send_session->hostname));
+ if (lttng_strncpy(send_session->session_name,
+ session->session_name,
+ sizeof(send_session->session_name))) {
+ ret = -1;
+ rcu_read_unlock();
+ goto end_free;
+ }
+ if (lttng_strncpy(send_session->hostname, session->hostname,
+ sizeof(send_session->hostname))) {
+ ret = -1;
+ rcu_read_unlock();
+ goto end_free;
+ }
send_session->id = htobe64(session->id);
send_session->live_timer = htobe32(session->live_timer);
if (session->viewer_attached) {