From 2f84ff9728e48c0a2f3d2c94021900406ac711f9 Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Fri, 14 Sep 2018 15:48:24 -0500
Subject: [PATCH] stasis_message.c: Don't create immutable stasis objects with
 locks.

* Create the stasis message object without a lock as it is immutable.
* Create the stasis message type object without a lock as it is immutable.
* Creating the stasis message type could crash if the passed in type name
is NULL and REF_DEBUG is enabled.  Added missing NULL check when passing
the ao2 object tag string.

Change-Id: I28763c58bb9f0b427c11971d0103bf94055e7b32
---
 main/stasis_message.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/main/stasis_message.c b/main/stasis_message.c
index 627402697d..cd873f6ab3 100644
--- a/main/stasis_message.c
+++ b/main/stasis_message.c
@@ -63,7 +63,8 @@ int stasis_message_type_create(const char *name,
 		return STASIS_MESSAGE_TYPE_DECLINED;
 	}
 
-	type = ao2_t_alloc(sizeof(*type), message_type_dtor, name);
+	type = ao2_t_alloc_options(sizeof(*type), message_type_dtor,
+		AO2_ALLOC_OPT_LOCK_NOLOCK, name ?: "");
 	if (!type) {
 		return STASIS_MESSAGE_TYPE_ERROR;
 	}
@@ -123,7 +124,8 @@ struct stasis_message *stasis_message_create_full(struct stasis_message_type *ty
 		return NULL;
 	}
 
-	message = ao2_t_alloc(sizeof(*message), stasis_message_dtor, type->name);
+	message = ao2_t_alloc_options(sizeof(*message), stasis_message_dtor,
+		AO2_ALLOC_OPT_LOCK_NOLOCK, type->name);
 	if (message == NULL) {
 		return NULL;
 	}
-- 
GitLab