X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Flive.c;h=598a5d8ff7fae3d7c25a99827e2b0c8fbba83746;hb=5f10c6b109dfdfe39dc7a406886ed0989f4972d1;hp=a9f4f648b0bafff2e2bf4cfb0af258f8ce3135bf;hpb=d62023be5fccac24ad404aff2915c1888c22755c;p=lttng-tools.git diff --git a/src/bin/lttng-relayd/live.c b/src/bin/lttng-relayd/live.c index a9f4f648b..598a5d8ff 100644 --- a/src/bin/lttng-relayd/live.c +++ b/src/bin/lttng-relayd/live.c @@ -794,7 +794,7 @@ end: static int viewer_list_sessions(struct relay_connection *conn) { - int ret; + int ret = 0; struct lttng_viewer_list_sessions session_list; struct lttng_ht_iter iter; struct relay_session *session; @@ -824,17 +824,23 @@ int viewer_list_sessions(struct relay_connection *conn) new_buf_count * sizeof(*send_session_buf)); if (!newbuf) { ret = -1; - rcu_read_unlock(); - goto end_free; + break; } send_session_buf = newbuf; 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; + break; + } + if (lttng_strncpy(send_session->hostname, session->hostname, + sizeof(send_session->hostname))) { + ret = -1; + break; + } send_session->id = htobe64(session->id); send_session->live_timer = htobe32(session->live_timer); if (session->viewer_attached) { @@ -846,6 +852,9 @@ int viewer_list_sessions(struct relay_connection *conn) count++; } rcu_read_unlock(); + if (ret < 0) { + goto end_free; + } session_list.sessions_count = htobe32(count);