Author: mjordan
Date: Wed Apr  8 21:03:57 2015
New Revision: 434448

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=434448
Log:
apps/app_queue: Prevent possible crash when evaluating queue penalty rules

Although it only occurred once, a crash occurred when a queue attempted to
evaluate a queue penalty rule that appeared to have already been destroyed.
In many locations in app_queue, a test is done to see if qe->pr is NULL;
however, when we dispose of a queue's penalty rules, we don't set the pointer
to NULL after free'ing it. This patch does that to prevent any dangling
pointers from lingering on the queue object.

Review: https://reviewboard.asterisk.org/r/4522

ASTERISK-23319 #close
Reported by: Vadim
patches:
  rb4552.patch submitted by Stefan Engström (License 6691)

Modified:
    branches/11/apps/app_queue.c

Modified: branches/11/apps/app_queue.c
URL: 
http://svnview.digium.com/svn/asterisk/branches/11/apps/app_queue.c?view=diff&rev=434448&r1=434447&r2=434448
==============================================================================
--- branches/11/apps/app_queue.c (original)
+++ branches/11/apps/app_queue.c Wed Apr  8 21:03:57 2015
@@ -3357,6 +3357,7 @@
                        while ((pr_iter = AST_LIST_REMOVE_HEAD(&qe->qe_rules, 
list))) {
                                ast_free(pr_iter);
                        }
+                       qe->pr = NULL;
                        snprintf(posstr, sizeof(posstr), "%d", qe->pos);
                        pbx_builtin_setvar_helper(qe->chan, "QUEUEPOSITION", 
posstr);
                } else {


-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to