From bd6c7265c5c40fb35e9175ca113526bf2d6c369e Mon Sep 17 00:00:00 2001 From: russell Date: Mon, 28 Jan 2008 18:34:20 +0000 Subject: 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) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@100629 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_sip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'channels') diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 5c33ce7dc..e52095bc7 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -7936,9 +7936,9 @@ static int set_address_from_contact(struct sip_pvt *pvt) struct ast_hostent ahp; int port; char *c, *host, *pt; + char contact_buf[256]; char *contact; - if (ast_test_flag(&pvt->flags[0], SIP_NAT_ROUTE)) { /* NAT: Don't trust the contact field. Just use what they came to us with. */ @@ -7946,9 +7946,9 @@ static int set_address_from_contact(struct sip_pvt *pvt) return 0; } - /* Work on a copy */ - contact = ast_strdupa(pvt->fullcontact); + ast_copy_string(contact_buf, pvt->fullcontact, sizeof(contact_buf)); + contact = contact_buf; /* Make sure it's a SIP URL */ if (strncasecmp(contact, "sip:", 4)) { -- cgit v1.2.3