summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Kemper <sebastian_ml@gmx.net>2021-03-07 11:04:44 +0100
committerSebastian Kemper <sebastian_ml@gmx.net>2021-03-07 11:06:26 +0100
commitf42ce26555cf8f765e9124bb410cda3e3a445ff4 (patch)
tree961ff0773603d6230026e2c13a1aa4903a4f0d6c
parent6e019c94d0fa7162548d528bf4ba060a61f8cb59 (diff)
pjproject: add patch for AST-2021-005
https://downloads.asterisk.org/pub/security/AST-2021-005.html https://issues.asterisk.org/jira/browse/ASTERISK-29196 Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
-rw-r--r--libs/pjproject/Makefile2
-rw-r--r--libs/pjproject/patches/240-fix-sdp-neg-modify-local-offer.patch33
2 files changed, 34 insertions, 1 deletions
diff --git a/libs/pjproject/Makefile b/libs/pjproject/Makefile
index 69c0fa4..c204ed0 100644
--- a/libs/pjproject/Makefile
+++ b/libs/pjproject/Makefile
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=pjproject
PKG_VERSION:=2.8
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=pjproject-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.pjsip.org/release/$(PKG_VERSION)
diff --git a/libs/pjproject/patches/240-fix-sdp-neg-modify-local-offer.patch b/libs/pjproject/patches/240-fix-sdp-neg-modify-local-offer.patch
new file mode 100644
index 0000000..c27a489
--- /dev/null
+++ b/libs/pjproject/patches/240-fix-sdp-neg-modify-local-offer.patch
@@ -0,0 +1,33 @@
+diff --git a/pjmedia/src/pjmedia/sdp_neg.c b/pjmedia/src/pjmedia/sdp_neg.c
+index 3b85b4273..a14009662 100644
+--- a/pjmedia/src/pjmedia/sdp_neg.c
++++ b/pjmedia/src/pjmedia/sdp_neg.c
+@@ -304,7 +304,6 @@ PJ_DEF(pj_status_t) pjmedia_sdp_neg_modify_local_offer2(
+ {
+ pjmedia_sdp_session *new_offer;
+ pjmedia_sdp_session *old_offer;
+- char media_used[PJMEDIA_MAX_SDP_MEDIA];
+ unsigned oi; /* old offer media index */
+ pj_status_t status;
+
+@@ -323,8 +322,19 @@ PJ_DEF(pj_status_t) pjmedia_sdp_neg_modify_local_offer2(
+ /* Change state to STATE_LOCAL_OFFER */
+ neg->state = PJMEDIA_SDP_NEG_STATE_LOCAL_OFFER;
+
++ /* When there is no active local SDP in state PJMEDIA_SDP_NEG_STATE_DONE,
++ * it means that the previous initial SDP nego must have been failed,
++ * so we'll just set the local SDP offer here.
++ */
++ if (!neg->active_local_sdp) {
++ neg->initial_sdp_tmp = NULL;
++ neg->initial_sdp = pjmedia_sdp_session_clone(pool, local);
++ neg->neg_local_sdp = pjmedia_sdp_session_clone(pool, local);
++
++ return PJ_SUCCESS;
++ }
++
+ /* Init vars */
+- pj_bzero(media_used, sizeof(media_used));
+ old_offer = neg->active_local_sdp;
+ new_offer = pjmedia_sdp_session_clone(pool, local);
+