res_pjsip: Use correct pool for storing the contact_user value.

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
13.34
Joshua C. Colp 5 years ago
parent 4b7293f44e
commit c8cabb08aa

@ -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);
}
}

Loading…
Cancel
Save