From c8cabb08aa29f9aa770dcb32393cd642b6c586c8 Mon Sep 17 00:00:00 2001 From: "Joshua C. Colp" Date: Wed, 27 May 2020 11:35:42 -0300 Subject: [PATCH] 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 --- res/res_pjsip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/res_pjsip.c b/res/res_pjsip.c index de2a4e2bba..a595749b3e 100644 --- a/res/res_pjsip.c +++ b/res/res_pjsip.c @@ -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); } }