[Asterisk-cvs] asterisk/apps app_queue.c,1.87.2.5,1.87.2.6

russell at lists.digium.com russell at lists.digium.com
Mon May 30 22:53:53 CDT 2005


Update of /usr/cvsroot/asterisk/apps
In directory mongoose.digium.com:/tmp/cvs-serv16937/apps

Modified Files:
      Tag: v1-0
	app_queue.c 
Log Message:
fix mem leak (bug #4318)


Index: app_queue.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_queue.c,v
retrieving revision 1.87.2.5
retrieving revision 1.87.2.6
diff -u -d -r1.87.2.5 -r1.87.2.6
--- app_queue.c	15 Apr 2005 07:15:39 -0000	1.87.2.5
+++ app_queue.c	31 May 2005 02:57:15 -0000	1.87.2.6
@@ -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);




More information about the svn-commits mailing list