Fix a potential crash from trying to access a NULL channel pointer.
authorMark Michelson <mmichelson@digium.com>
Fri, 12 Jun 2009 14:55:07 +0000 (14:55 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 12 Jun 2009 14:55:07 +0000 (14:55 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200290 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index 65b2970..8fe2cdc 100644 (file)
@@ -3086,9 +3086,11 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
                         * ast_strdupa in a loop like this one can cause a stack overflow
                         */
                        char ochan_name[AST_CHANNEL_NAME];
-                       ast_channel_lock(o->chan);
-                       ast_copy_string(ochan_name, o->chan->name, sizeof(ochan_name));
-                       ast_channel_unlock(o->chan);
+                       if (o->chan) {
+                               ast_channel_lock(o->chan);
+                               ast_copy_string(ochan_name, o->chan->name, sizeof(ochan_name));
+                               ast_channel_unlock(o->chan);
+                       }
                        if (o->stillgoing && (o->chan) &&  (o->chan->_state == AST_STATE_UP)) {
                                if (!peer) {
                                        ast_verb(3, "%s answered %s\n", ochan_name, inchan_name);