pjproject: add patch for AST-2021-005
[feed/telephony.git] / libs / pjproject / patches / 0070-fix-sdp-neg-modify-local-offer.patch
1 diff --git a/pjmedia/src/pjmedia/sdp_neg.c b/pjmedia/src/pjmedia/sdp_neg.c
2 index 3b85b4273..a14009662 100644
3 --- a/pjmedia/src/pjmedia/sdp_neg.c
4 +++ b/pjmedia/src/pjmedia/sdp_neg.c
5 @@ -304,7 +304,6 @@ PJ_DEF(pj_status_t) pjmedia_sdp_neg_modify_local_offer2(
6 {
7 pjmedia_sdp_session *new_offer;
8 pjmedia_sdp_session *old_offer;
9 - char media_used[PJMEDIA_MAX_SDP_MEDIA];
10 unsigned oi; /* old offer media index */
11 pj_status_t status;
12
13 @@ -323,8 +322,19 @@ PJ_DEF(pj_status_t) pjmedia_sdp_neg_modify_local_offer2(
14 /* Change state to STATE_LOCAL_OFFER */
15 neg->state = PJMEDIA_SDP_NEG_STATE_LOCAL_OFFER;
16
17 + /* When there is no active local SDP in state PJMEDIA_SDP_NEG_STATE_DONE,
18 + * it means that the previous initial SDP nego must have been failed,
19 + * so we'll just set the local SDP offer here.
20 + */
21 + if (!neg->active_local_sdp) {
22 + neg->initial_sdp_tmp = NULL;
23 + neg->initial_sdp = pjmedia_sdp_session_clone(pool, local);
24 + neg->neg_local_sdp = pjmedia_sdp_session_clone(pool, local);
25 +
26 + return PJ_SUCCESS;
27 + }
28 +
29 /* Init vars */
30 - pj_bzero(media_used, sizeof(media_used));
31 old_offer = neg->active_local_sdp;
32 new_offer = pjmedia_sdp_session_clone(pool, local);
33