From 44349de2dfaa12b2c6045acd49b40d8abb2fc777 Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Tue, 1 Feb 2011 00:07:30 +0000
Subject: [PATCH] Merged revisions 305343 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r305343 | rmudgett | 2011-01-31 18:01:09 -0600 (Mon, 31 Jan 2011) | 21 lines

  Merged revisions 305342 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ................
    r305342 | rmudgett | 2011-01-31 17:50:10 -0600 (Mon, 31 Jan 2011) | 14 lines

    Merged revisions 305341 via svnmerge from
    https://origsvn.digium.com/svn/asterisk/branches/1.4

    ........
      r305341 | rmudgett | 2011-01-31 17:45:58 -0600 (Mon, 31 Jan 2011) | 7 lines

      Obtain the pri lock for PRI queue counters.

      Need to obtain the pri lock when calling pri_dump_info_str() to avoid a
      reentrancy problem when calculating the Q.921 Q count statistic.

      JIRA AST-484
    ........
  ................
................


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

diff --git a/channels/sig_pri.c b/channels/sig_pri.c
index 2efc666abe..cc3214a8bd 100644
--- a/channels/sig_pri.c
+++ b/channels/sig_pri.c
@@ -8301,6 +8301,7 @@ void sig_pri_cli_show_span(int fd, int *dchannels, struct sig_pri_span *pri)
 			ast_cli(fd, "%s D-channel: %d\n", pri_order(x), dchannels[x]);
 			build_status(status, sizeof(status), pri->dchanavail[x], pri->dchans[x] == pri->pri);
 			ast_cli(fd, "Status: %s\n", status);
+			ast_mutex_lock(&pri->lock);
 #ifdef PRI_DUMP_INFO_STR
 			info_str = pri_dump_info_str(pri->pri);
 			if (info_str) {
@@ -8310,6 +8311,7 @@ void sig_pri_cli_show_span(int fd, int *dchannels, struct sig_pri_span *pri)
 #else
 			pri_dump_info(pri->pri);
 #endif
+			ast_mutex_unlock(&pri->lock);
 			ast_cli(fd, "Overlap Recv: %s\n\n", (pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)?"Yes":"No");
 			ast_cli(fd, "\n");
 		}
-- 
GitLab