From 8f5bf61ef8d494007a6d39a9d8d809ce7ba51308 Mon Sep 17 00:00:00 2001
From: Luigi Rizzo <rizzo@icir.org>
Date: Wed, 29 Mar 2006 16:00:51 +0000
Subject: [PATCH] mention issues with the protection of the list used in
 indications.c

(part of work done to figure out what is used and what is not in lock.h)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@16124 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 indications.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/indications.c b/indications.c
index 799c1921c4..2d2ca68962 100644
--- a/indications.c
+++ b/indications.c
@@ -336,6 +336,16 @@ static struct tone_zone *current_tonezone;
 /* Protect the tone_zones list (highly unlikely that two things would change
  * it at the same time, but still! */
 AST_MUTEX_DEFINE_EXPORTED(tzlock);
+/* XXX note - this is the only instance of AST_MUTEX_DEFINE_EXPORTED()
+ * in the entire asterisk code base, and should be replaced by a static one.
+ * The mutex is declared exported because it is accessed
+ * by other files, namely res/snmp/agent.c and res/res_indications.c.
+ * However there are also unprotected accesses to the list, because
+ * some of the functions below export pointers to the elements, so
+ * the entire mechanism is useless.
+ * This needs to be fixed by providing functions to navigate in the
+ * list, and refcounts to prevent entries from being destroyed.
+ */
 
 /* Set global indication country */
 int ast_set_indication_country(const char *country)
-- 
GitLab