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

Modified Files:
        res_musiconhold.c 
Log Message:
don't access freed memory if the frame was malloc'd


Index: res_musiconhold.c
===================================================================
RCS file: /usr/cvsroot/asterisk/res/res_musiconhold.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- res_musiconhold.c   31 Aug 2005 01:16:48 -0000      1.69
+++ res_musiconhold.c   1 Sep 2005 19:34:49 -0000       1.70
@@ -241,18 +241,19 @@
        struct moh_files_state *state = chan->music_state;
        struct ast_frame *f = NULL;
        int res = 0;
+
        state->sample_queue += samples;
 
        while (state->sample_queue > 0) {
                if ((f = moh_files_readframe(chan))) {
                        state->samples += f->samples;
                        res = ast_write(chan, f);
+                       state->sample_queue -= f->samples;
                        ast_frfree(f);
                        if (res < 0) {
                                ast_log(LOG_WARNING, "Failed to write frame to 
'%s': %s\n", chan->name, strerror(errno));
                                return -1;
                        }
-                       state->sample_queue -= f->samples;
                } else
                        return -1;      
        }

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

Reply via email to