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