]> 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 C. Colp <jcolp@sangoma.com>
Wed, 27 May 2020 14:35:42 +0000 (11:35 -0300)
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 de2a4e2bbae99569ae68d2679b26634c035a6764..a595749b3e91afc2929d6672bc26fb54e98349dd 100644 (file)
@@ -3695,7 +3695,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);
                }
        }