From: Mark Spencer Date: Tue, 18 Oct 2005 20:58:16 +0000 (+0000) Subject: Fix segfault in app queue when no cdr exists for the calling channel (bug #5462) X-Git-Tag: 1.2.0-beta2~99 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dbdd193e12e2aa3afcacef64927dab69533f6d07;p=thirdparty%2Fasterisk.git Fix segfault in app queue when no cdr exists for the calling channel (bug #5462) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6824 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_queue.c b/apps/app_queue.c index e1d7373c42..7a09914149 100755 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -2188,8 +2188,14 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce which = peer; if (monitorfilename) ast_monitor_start(which, qe->parent->monfmt, monitorfilename, 1 ); - else + else if (qe->chan->cdr) ast_monitor_start(which, qe->parent->monfmt, qe->chan->cdr->uniqueid, 1 ); + else { + /* Last ditch effort -- no CDR, make up something */ + char tmpid[256]; + snprintf(tmpid, sizeof(tmpid), "chan-%x", rand()); + ast_monitor_start(which, qe->parent->monfmt, tmpid, 1 ); + } if (qe->parent->monjoin) ast_monitor_setjoinfiles(which, 1); }