[asterisk-commits] russell: trunk r100630 - in /trunk: ./ channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Jan 28 12:38:56 CST 2008


Author: russell
Date: Mon Jan 28 12:38:56 2008
New Revision: 100630

URL: http://svn.digium.com/view/asterisk?view=rev&rev=100630
Log:
Merged revisions 100629 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r100629 | russell | 2008-01-28 12:34:20 -0600 (Mon, 28 Jan 2008) | 5 lines

For some reason, the use of this strdupa() is leading to memory corruption on
freebsd sparc64.  This trivial workaround fixes it.

(closes issue #10300, closes issue #11857, reported by mattias04 and Home-of-the-Brave)

........

Modified:
    trunk/   (props changed)
    trunk/channels/chan_sip.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_sip.c?view=diff&rev=100630&r1=100629&r2=100630
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Mon Jan 28 12:38:56 2008
@@ -9445,8 +9445,9 @@
 	struct ast_hostent ahp;
 	int port;
 	char *host, *pt;
+	char contact_buf[256];
+	char contact2_buf[256];
 	char *contact, *contact2;
-
 
 	if (ast_test_flag(&pvt->flags[0], SIP_NAT_ROUTE)) {
 		/* NAT: Don't trust the contact field.  Just use what they came to us
@@ -9455,10 +9456,12 @@
 		return 0;
 	}
 
-
 	/* Work on a copy */
-	contact = ast_strdupa(pvt->fullcontact);
-	contact2 = ast_strdupa(pvt->fullcontact);
+	ast_copy_string(contact_buf, pvt->fullcontact, sizeof(contact_buf));
+	ast_copy_string(contact2_buf, pvt->fullcontact, sizeof(contact2_buf));
+	contact = contact_buf;
+	contact2 = contact2_buf;
+
 	/* We have only the part in <brackets> here so we just need to parse a SIP URI.*/
 
 	if (pvt->socket.type == SIP_TRANSPORT_TLS) {




More information about the asterisk-commits mailing list