blob: 0fda06dea81e5be2c33c431f0a9d626e25fe5a51 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001--- a/pjmedia/src/pjmedia/sdp_neg.c
2+++ b/pjmedia/src/pjmedia/sdp_neg.c
3@@ -906,7 +906,7 @@ static pj_status_t process_m_answer( pj_
4 * after receiving remote answer.
5 */
6 static pj_status_t process_answer(pj_pool_t *pool,
7- pjmedia_sdp_session *offer,
8+ pjmedia_sdp_session *local_offer,
9 pjmedia_sdp_session *answer,
10 pj_bool_t allow_asym,
11 pjmedia_sdp_session **p_active)
12@@ -914,10 +914,14 @@ static pj_status_t process_answer(pj_poo
13 unsigned omi = 0; /* Offer media index */
14 unsigned ami = 0; /* Answer media index */
15 pj_bool_t has_active = PJ_FALSE;
16+ pjmedia_sdp_session *offer;
17 pj_status_t status;
18
19 /* Check arguments. */
20- PJ_ASSERT_RETURN(pool && offer && answer && p_active, PJ_EINVAL);
21+ PJ_ASSERT_RETURN(pool && local_offer && answer && p_active, PJ_EINVAL);
22+
23+ /* Duplicate local offer SDP. */
24+ offer = pjmedia_sdp_session_clone(pool, local_offer);
25
26 /* Check that media count match between offer and answer */
27 // Ticket #527, different media count is allowed for more interoperability,