Index: apps/app_queue.c =================================================================== RCS file: /usr/cvsroot/asterisk/apps/app_queue.c,v retrieving revision 1.87.2.5 diff -u -r1.87.2.5 app_queue.c --- apps/app_queue.c 15 Apr 2005 07:15:39 -0000 1.87.2.5 +++ apps/app_queue.c 31 May 2005 03:35:21 -0000 @@ -861,21 +861,30 @@ if (!f || ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_HANGUP))) { /* Got hung up */ *to=-1; + if ( f ) + ast_frfree(f); return NULL; } - if (f && (f->frametype == AST_FRAME_DTMF) && allowdisconnect_out && (f->subclass == '*')) { + if ((f->frametype == AST_FRAME_DTMF) && allowdisconnect_out && (f->subclass == '*')) { if (option_verbose > 3) ast_verbose(VERBOSE_PREFIX_3 "User hit %c to disconnect call.\n", f->subclass); *to=0; + if ( f ) + ast_frfree(f); return NULL; } - if (f && (f->frametype == AST_FRAME_DTMF) && (f->subclass != '*') && valid_exit(qe, f->subclass)) { + if ((f->frametype == AST_FRAME_DTMF) && (f->subclass != '*') && valid_exit(qe, f->subclass)) { if (option_verbose > 3) ast_verbose(VERBOSE_PREFIX_3 "User pressed digit: %c\n", f->subclass); *to=0; *digit=f->subclass; + if ( f ) + ast_frfree(f); return NULL; } + if ( f ) + ast_frfree(f); + } if (!*to && (option_verbose > 2)) ast_verbose( VERBOSE_PREFIX_3 "Nobody picked up in %d ms\n", orig);