]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
For some reason, the use of this strdupa() is leading to memory corruption on
authorRussell Bryant <russell@russellbryant.com>
Mon, 28 Jan 2008 18:34:20 +0000 (18:34 +0000)
committerRussell Bryant <russell@russellbryant.com>
Mon, 28 Jan 2008 18:34:20 +0000 (18:34 +0000)
freebsd sparc64.  This trivial workaround fixes it.

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@100629 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 5c33ce7dcb280373a92e81f82f74d858b8751777..e52095bc7e3cd172becc13817ffafda0576db6c2 100644 (file)
@@ -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)) {