]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 305342 via svnmerge from
authorRichard Mudgett <rmudgett@digium.com>
Tue, 1 Feb 2011 00:01:09 +0000 (00:01 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 1 Feb 2011 00:01:09 +0000 (00:01 +0000)
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/branches/1.8@305343 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/sig_pri.c

index 74a31664391fb458cbc0a6edb70c1e27d00be3f5..e4ee551eb3373bbf2433c5e0f426a4bacbf331e4 100644 (file)
@@ -7390,6 +7390,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) {
@@ -7399,6 +7400,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");
                }