]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Protect the CDR record from modification by pbx_exec so that the application data...
authorJoshua Colp <jcolp@digium.com>
Wed, 19 Sep 2007 13:47:59 +0000 (13:47 +0000)
committerJoshua Colp <jcolp@digium.com>
Wed, 19 Sep 2007 13:47:59 +0000 (13:47 +0000)
(closes issue #10761)
Reported by: snar
Patches:
      app-queue-mixmonitor.patch uploaded by snar (license 245)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83074 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index a5fe870eaea9ea50d2f21dcafb91cbf73520034e..eb5aa8fd29ea6dc1ca3b4b4f3916cbaf4244af4c 100644 (file)
@@ -2724,8 +2724,12 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
                                                
                                        if (option_debug)
                                                ast_log(LOG_DEBUG, "Arguments being passed to MixMonitor: %s\n", mixmonargs);
-
+                                       /* We purposely lock the CDR so that pbx_exec does not update the application data */
+                                       if (qe->chan->cdr)
+                                               ast_set_flag(qe->chan->cdr, AST_CDR_FLAG_LOCKED);
                                        ret = pbx_exec(qe->chan, mixmonapp, mixmonargs);
+                                       if (qe->chan->cdr)
+                                               ast_clear_flag(qe->chan->cdr, AST_CDR_FLAG_LOCKED);
 
                                } else
                                        ast_log(LOG_WARNING, "Asked to run MixMonitor on this call, but cannot find the MixMonitor app!\n");