From 0845bbfa69e069de075c4f06bb8f35ecff64cb63 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Fri, 28 Mar 2014 09:58:03 -0400 Subject: [PATCH] Fix: take session list lock when listing tp This is important since the list tracepoints command access the application socket to ask the application for its TPs. The session list lock protects the ordering of message for those sockets. This was triggering out of order message between the session daemon and an application thus triggering undefined behavior. Fixes #774 Signed-off-by: David Goulet --- src/bin/lttng-sessiond/main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c index 2f90b3b30..5c5bda277 100644 --- a/src/bin/lttng-sessiond/main.c +++ b/src/bin/lttng-sessiond/main.c @@ -3161,7 +3161,9 @@ skip_domain: struct lttng_event *events; ssize_t nb_events; + session_lock_list(); nb_events = cmd_list_tracepoints(cmd_ctx->lsm->domain.type, &events); + session_unlock_list(); if (nb_events < 0) { /* Return value is a negative lttng_error_code. */ ret = -nb_events; @@ -3192,8 +3194,10 @@ skip_domain: struct lttng_event_field *fields; ssize_t nb_fields; + session_lock_list(); nb_fields = cmd_list_tracepoint_fields(cmd_ctx->lsm->domain.type, &fields); + session_unlock_list(); if (nb_fields < 0) { /* Return value is a negative lttng_error_code. */ ret = -nb_fields; -- 2.34.1