From: Jérémie Galarneau Date: Tue, 9 Jan 2018 22:00:41 +0000 (-0500) Subject: Fix: channel lock must be taken to check for pending notifications X-Git-Tag: v2.10.4~15 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=23954e45196183e2d7b947e874c707c702ced072;p=lttng-tools.git Fix: channel lock must be taken to check for pending notifications Signed-off-by: Jérémie Galarneau --- diff --git a/src/lib/lttng-ctl/channel.c b/src/lib/lttng-ctl/channel.c index 3d48babb7..f2daf0d50 100644 --- a/src/lib/lttng-ctl/channel.c +++ b/src/lib/lttng-ctl/channel.c @@ -215,6 +215,8 @@ lttng_notification_channel_get_next_notification( goto end; } + pthread_mutex_lock(&channel->lock); + if (channel->pending_notifications.count) { struct pending_notification *pending_notification; @@ -232,11 +234,9 @@ lttng_notification_channel_get_next_notification( cds_list_del(&pending_notification->node); channel->pending_notifications.count--; free(pending_notification); - goto end; + goto end_unlock; } - pthread_mutex_lock(&channel->lock); - ret = receive_message(channel); if (ret) { status = LTTNG_NOTIFICATION_CHANNEL_STATUS_ERROR;