[svn-commits] file: trunk r198762 - /trunk/main/rtp_engine.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Jun 2 08:13:04 CDT 2009


Author: file
Date: Tue Jun  2 08:12:59 2009
New Revision: 198762

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=198762
Log:
Fix a bug where we were passing in address information that should remain unmodified to a function that may modify it.

(closes issue #15243)
Reported by: pj

Modified:
    trunk/main/rtp_engine.c

Modified: trunk/main/rtp_engine.c
URL: http://svn.asterisk.org/svn-view/asterisk/trunk/main/rtp_engine.c?view=diff&rev=198762&r1=198761&r2=198762
==============================================================================
--- trunk/main/rtp_engine.c (original)
+++ trunk/main/rtp_engine.c Tue Jun  2 08:12:59 2009
@@ -278,6 +278,7 @@
 
 struct ast_rtp_instance *ast_rtp_instance_new(const char *engine_name, struct sched_context *sched, struct sockaddr_in *sin, void *data)
 {
+	struct sockaddr_in address = { 0, };
 	struct ast_rtp_instance *instance = NULL;
 	struct ast_rtp_engine *engine = NULL;
 
@@ -315,11 +316,12 @@
 	instance->local_address.sin_family = AF_INET;
 	instance->local_address.sin_addr = sin->sin_addr;
 	instance->remote_address.sin_family = AF_INET;
+	address.sin_addr = sin->sin_addr;
 
 	ast_debug(1, "Using engine '%s' for RTP instance '%p'\n", engine->name, instance);
 
 	/* And pass it off to the engine to setup */
-	if (instance->engine->new(instance, sched, sin, data)) {
+	if (instance->engine->new(instance, sched, &address, data)) {
 		ast_debug(1, "Engine '%s' failed to setup RTP instance '%p'\n", engine->name, instance);
 		ao2_ref(instance, -1);
 		return NULL;




More information about the svn-commits mailing list