From 9d8b9b6ca5a47911c50f61696b2bc9978ab1ff80 Mon Sep 17 00:00:00 2001
From: mkrokosz <mkrokosz@vonage.com>
Date: Fri, 28 Oct 2016 14:30:02 -0400
Subject: [PATCH] res_pjsip_outbound_publish: Fix crash when publishing device
 state.

While publishing device state between multiple instances of Asterisk,
a crash will sporadically occur under high CPS which looks to be a
race condition operating on the publisher queue.

ASTERISK-26506

Change-Id: I28da25d346deb358eff1d563485cabc433ce1ed6
---
 res/res_pjsip_outbound_publish.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/res/res_pjsip_outbound_publish.c b/res/res_pjsip_outbound_publish.c
index 0aad5fcdb6..87680480c8 100644
--- a/res/res_pjsip_outbound_publish.c
+++ b/res/res_pjsip_outbound_publish.c
@@ -786,6 +786,7 @@ static int publisher_client_send(void *obj, void *arg, void *data, int flags)
 	struct sip_outbound_publish_message *message;
 	size_t type_len = 0, subtype_len = 0, body_text_len = 0;
 	int *res = data;
+	SCOPED_AO2LOCK(lock, publisher);
 
 	*res = -1;
 	if (!publisher->client) {
-- 
GitLab