[Asterisk-cvs] asterisk/res res_musiconhold.c,1.69,1.70

kpfleming kpfleming
Thu Sep 1 15:33:50 CDT 2005


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




More information about the svn-commits mailing list