[Freeswitch-svn] [commit] r11482 - in freeswitch/trunk/src: . mod/formats/mod_shout

FreeSWITCH SVN anthm at freeswitch.org
Sat Jan 24 10:11:42 PST 2009


Author: anthm
Date: Sat Jan 24 12:11:42 2009
New Revision: 11482

Log:
add error checking

Modified:
   freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c
   freeswitch/trunk/src/switch_core_file.c

Modified: freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c	(original)
+++ freeswitch/trunk/src/mod/formats/mod_shout/mod_shout.c	Sat Jan 24 12:11:42 2009
@@ -876,6 +876,10 @@
 
 	*len = 0;
 
+	if (!context || context->err) {
+		return SWITCH_STATUS_FALSE;
+	}
+
 	if (context->fd) {
 		rb = decode_fd(context, data, bytes);
 	} else {
@@ -923,7 +927,16 @@
 		return SWITCH_STATUS_FALSE;
 	}
 
+	if (context->err) {
+		return SWITCH_STATUS_FALSE;
+	}
+
 	if (context->shout && !context->shout_init) {
+
+		if (!context->gfp) {
+			return SWITCH_STATUS_FALSE;
+		}
+
 		context->shout_init++;
 		if (shout_open(context->shout) != SHOUTERR_SUCCESS) {
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error opening stream: %s\n", shout_get_error(context->shout));

Modified: freeswitch/trunk/src/switch_core_file.c
==============================================================================
--- freeswitch/trunk/src/switch_core_file.c	(original)
+++ freeswitch/trunk/src/switch_core_file.c	Sat Jan 24 12:11:42 2009
@@ -45,6 +45,11 @@
 	char stream_name[128] = "";
 	char *rhs = NULL;
 
+	if (switch_test_flag(fh, SWITCH_FILE_OPEN)) {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Handle already open\n");
+		return SWITCH_STATUS_FALSE;
+	}
+
 	if (switch_strlen_zero(file_path)) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Filename\n");
 		return SWITCH_STATUS_FALSE;
@@ -140,6 +145,10 @@
 	switch_assert(fh != NULL);
 	switch_assert(fh->file_interface != NULL);
 
+	if (!switch_test_flag(fh, SWITCH_FILE_OPEN)) {
+		return SWITCH_STATUS_FALSE;
+	}
+
  top:
 
 	if (fh->buffer && switch_buffer_inuse(fh->buffer) >= *len * 2) {
@@ -253,6 +262,10 @@
 	switch_assert(fh != NULL);
 	switch_assert(fh->file_interface != NULL);
 
+	if (!switch_test_flag(fh, SWITCH_FILE_OPEN)) {
+		return SWITCH_STATUS_FALSE;
+	}
+
 	if (!fh->file_interface->file_write) {
 		return SWITCH_STATUS_FALSE;
 	}



More information about the Freeswitch-svn mailing list