mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 03:02:04 +00:00
In rewrite_uri asterisk was not making deep copies of strings when changing the uri. This was in some cases causing garbage in the route header and in other cases even crashing asterisk when receiving a message with a record-route header set. Thanks to Ralf Kubis for pointing out why this happens. A similar problem was found in res_pjsip_transport_websocket.c. Pjproject needs as well to be patched to avoid garbage in CANCEL messages. ASTERISK-29024 #close Change-Id: Ic5acd7fa2fbda3080f5f36ef12e46804939b198b
38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
From ce18018cc17bef8f80c08686e3a7b28384ef3ba5 Mon Sep 17 00:00:00 2001
|
|
From: sauwming <ming@teluu.com>
|
|
Date: Mon, 12 Oct 2020 13:31:25 +0800
|
|
Subject: [PATCH] Fix incorrect copying of destination info when creating
|
|
CANCEL (#2546)
|
|
|
|
---
|
|
pjsip/src/pjsip/sip_util.c | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/pjsip/src/pjsip/sip_util.c b/pjsip/src/pjsip/sip_util.c
|
|
index d10a6fa30..a1bf878ea 100644
|
|
--- a/pjsip/src/pjsip/sip_util.c
|
|
+++ b/pjsip/src/pjsip/sip_util.c
|
|
@@ -779,14 +779,14 @@ PJ_DEF(pj_status_t) pjsip_endpt_create_cancel( pjsip_endpoint *endpt,
|
|
pjsip_hdr_clone(cancel_tdata->pool, req_tdata->saved_strict_route);
|
|
}
|
|
|
|
- /* Copy the destination host name from the original request */
|
|
- pj_strdup(cancel_tdata->pool, &cancel_tdata->dest_info.name,
|
|
- &req_tdata->dest_info.name);
|
|
-
|
|
- /* Finally copy the destination info from the original request */
|
|
+ /* Copy the destination info from the original request */
|
|
pj_memcpy(&cancel_tdata->dest_info, &req_tdata->dest_info,
|
|
sizeof(req_tdata->dest_info));
|
|
|
|
+ /* Finally, copy the destination host name from the original request */
|
|
+ pj_strdup(cancel_tdata->pool, &cancel_tdata->dest_info.name,
|
|
+ &req_tdata->dest_info.name);
|
|
+
|
|
/* Done.
|
|
* Return the transmit buffer containing the CANCEL request.
|
|
*/
|
|
--
|
|
2.25.1
|
|
|