]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_pjsip: Use correct pool for storing the contact_user value.
authorJoshua C. Colp <jcolp@sangoma.com>
Wed, 27 May 2020 14:35:42 +0000 (11:35 -0300)
committerJoshua Colp <jcolp@sangoma.com>
Wed, 27 May 2020 14:36:37 +0000 (09:36 -0500)
When replacing the user portion of the Contact URI the code
was using the ephemeral pool instead of the tdata pool. This
could cause the Contact user value to become invalid after a
period of time.

The code will now use the tdata pool which persists for the
lifetime of the message instead.

ASTERISK-28794

Change-Id: I31e7b958e397cbdaeedd0ebb70bcf8dd2ed3c4d5

res/res_pjsip.c

index 2169fa60a2a9303a914ce63c26c277a06b4b1612..8ab58e0cc7f06c8a14bfb272b047f8854091045c 100644 (file)
@@ -3967,7 +3967,7 @@ static int create_out_of_dialog_request(const pjsip_method *method, struct ast_s
                contact_hdr = pjsip_msg_find_hdr_by_names((*tdata)->msg, &HCONTACT, &HCONTACTSHORT, NULL);
                if (contact_hdr) {
                        contact_uri = pjsip_uri_get_uri(contact_hdr->uri);
-                       pj_strdup2(pool, &contact_uri->user, endpoint->contact_user);
+                       pj_strdup2((*tdata)->pool, &contact_uri->user, endpoint->contact_user);
                }
        }