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);

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to