[Freeswitch-svn] [commit] r7026 - in freeswitch/trunk: . src src/include src/mod/applications/mod_dptools

Freeswitch SVN mikej at freeswitch.org
Sat Dec 29 18:15:57 EST 2007


Author: mikej
Date: Sat Dec 29 18:15:57 2007
New Revision: 7026

Modified:
   freeswitch/trunk/Freeswitch.2008.sln
   freeswitch/trunk/src/include/switch_core.h
   freeswitch/trunk/src/include/switch_ivr.h
   freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c
   freeswitch/trunk/src/switch_core_file.c
   freeswitch/trunk/src/switch_ivr_play_say.c

Log:
avoid seg on invalid params to record app.(MODAPP-63)

Modified: freeswitch/trunk/Freeswitch.2008.sln
==============================================================================
--- freeswitch/trunk/Freeswitch.2008.sln	(original)
+++ freeswitch/trunk/Freeswitch.2008.sln	Sat Dec 29 18:15:57 2007
@@ -115,6 +115,7 @@
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dialplan", "dialplan", "{C7E2382E-2C22-4D18-BF93-80C6A1FFA7AC}"
 	ProjectSection(SolutionItems) = preProject
 		conf\dialplan\default.xml = conf\dialplan\default.xml
+		conf\dialplan\public.xml = conf\dialplan\public.xml
 	EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "directory", "directory", "{FC71C66E-E268-4EAD-B1F5-F008DC382E83}"

Modified: freeswitch/trunk/src/include/switch_core.h
==============================================================================
--- freeswitch/trunk/src/include/switch_core.h	(original)
+++ freeswitch/trunk/src/include/switch_core.h	Sat Dec 29 18:15:57 2007
@@ -1126,7 +1126,7 @@
   \note the loadable module used is chosen based on the file extension
 */
 SWITCH_DECLARE(switch_status_t) switch_core_file_open(switch_file_handle_t *fh,
-													  const char *file_path, uint8_t channels, uint32_t rate, unsigned int flags, switch_memory_pool_t *pool);
+													  _In_z_ const char *file_path, uint8_t channels, uint32_t rate, unsigned int flags, switch_memory_pool_t *pool);
 /*! 
   \brief Read media from a file handle
   \param fh the file handle to read from (must be initilized by you memset all 0 for read, fill in channels and rate for write)

Modified: freeswitch/trunk/src/include/switch_ivr.h
==============================================================================
--- freeswitch/trunk/src/include/switch_ivr.h	(original)
+++ freeswitch/trunk/src/include/switch_ivr.h	Sat Dec 29 18:15:57 2007
@@ -298,8 +298,11 @@
   \param limit max limit to record for (0 for infinite)
   \return SWITCH_STATUS_SUCCESS if all is well
 */
-SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *session,
-													   switch_file_handle_t *fh, char *file, switch_input_args_t *args, uint32_t limit);
+SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(_In_ switch_core_session_t *session,
+													   _In_ switch_file_handle_t *fh,
+													   _In_z_ const char *file,
+													   _In_opt_ switch_input_args_t *args,
+													   _In_ uint32_t limit);
 
 
 /*!

Modified: freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c	(original)
+++ freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c	Sat Dec 29 18:15:57 2007
@@ -1253,7 +1253,7 @@
 	int rate;
 
 	channel = switch_core_session_get_channel(session);
-	assert(channel != NULL);
+	switch_assert(channel != NULL);
 	
 	if (data && (mydata = switch_core_session_strdup(session, data))) {
 		argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0])));

Modified: freeswitch/trunk/src/switch_core_file.c
==============================================================================
--- freeswitch/trunk/src/switch_core_file.c	(original)
+++ freeswitch/trunk/src/switch_core_file.c	Sat Dec 29 18:15:57 2007
@@ -42,6 +42,11 @@
 	char stream_name[128] = "";
 	char *rhs = NULL;
 
+	if (switch_strlen_zero(file_path)) {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Filename\n");
+		return SWITCH_STATUS_FALSE;
+	}
+
 	if ((rhs = strstr(file_path, SWITCH_URL_SEPARATOR))) {
 		switch_copy_string(stream_name, file_path, (rhs + 1) - file_path);
 		ext = stream_name;

Modified: freeswitch/trunk/src/switch_ivr_play_say.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_play_say.c	(original)
+++ freeswitch/trunk/src/switch_ivr_play_say.c	Sat Dec 29 18:15:57 2007
@@ -335,7 +335,7 @@
 }
 
 SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *session,
-													   switch_file_handle_t *fh, char *file, switch_input_args_t *args, uint32_t limit)
+													   switch_file_handle_t *fh, const char *file, switch_input_args_t *args, uint32_t limit)
 {
 	switch_channel_t *channel;
 	switch_dtmf_t dtmf = {0};



More information about the Freeswitch-svn mailing list