Merged with minor changes in master, stable-2.10 and stable-2.9. Thanks, Jérémie
On 8 May 2017 at 11:22, Jonathan Rajotte <[email protected]> wrote: > An actual relayd lookup error leads to using the code path of a local > handling. Since stream->index_file is null when expecting a relayd, using > the code path for local handling result in an null access. > > Signed-off-by: Jonathan Rajotte <[email protected]> > --- > src/common/consumer/consumer-stream.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/src/common/consumer/consumer-stream.c > b/src/common/consumer/consumer-stream.c > index 522b3cd5..23654d38 100644 > --- a/src/common/consumer/consumer-stream.c > +++ b/src/common/consumer/consumer-stream.c > @@ -359,18 +359,24 @@ int consumer_stream_write_index(struct > lttng_consumer_stream *stream, > struct ctf_packet_index *element) > { > int ret; > - struct consumer_relayd_sock_pair *relayd; > > assert(stream); > assert(element); > > rcu_read_lock(); > - relayd = consumer_find_relayd(stream->net_seq_idx); > - if (relayd) { > - pthread_mutex_lock(&relayd->ctrl_sock_mutex); > - ret = relayd_send_index(&relayd->control_sock, element, > + if (stream->net_seq_idx != (uint64_t) -1ULL) { > + struct consumer_relayd_sock_pair *relayd; > + relayd = consumer_find_relayd(stream->net_seq_idx); > + if (relayd) { > + pthread_mutex_lock(&relayd->ctrl_sock_mutex); > + ret = relayd_send_index(&relayd->control_sock, > element, > stream->relayd_stream_id, > stream->next_net_seq_num - 1); > - pthread_mutex_unlock(&relayd->ctrl_sock_mutex); > + pthread_mutex_unlock(&relayd->ctrl_sock_mutex); > + } else { > + ERR("Stream %" PRIu64 " relayd ID %" PRIu64 " > unknown. Can't write index.", > + stream->key, stream->net_seq_idx); > + ret = -1; > + } > } else { > if (lttng_index_file_write(stream->index_file, element)) { > ret = -1; > @@ -378,6 +384,7 @@ int consumer_stream_write_index(struct > lttng_consumer_stream *stream, > ret = 0; > } > } > + > if (ret < 0) { > goto error; > } > -- > 2.11.0 > -- Jérémie Galarneau EfficiOS Inc. http://www.efficios.com _______________________________________________ lttng-dev mailing list [email protected] https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
