[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