summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-10-31 16:26:27 +0000
committerBenny Prijono <bennylp@teluu.com>2008-10-31 16:26:27 +0000
commite33c8a7050450a7f2c90623fc3dd5520cb0db85b (patch)
tree1058259e7186b6a05c8987b5c9b0a342ec4d3c28
parentdf432c0c6c3d436fca47bc3a83d46b1603cea182 (diff)
Ticket #673: Crash in SRTP transport when receiving stray RTP/RTCP packet
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2360 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia/transport_srtp.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c
index a3378923..4b04e699 100644
--- a/pjmedia/src/pjmedia/transport_srtp.c
+++ b/pjmedia/src/pjmedia/transport_srtp.c
@@ -798,7 +798,12 @@ static void srtp_rtp_cb( void *user_data, void *pkt, pj_ssize_t size)
err_status_t err;
if (srtp->bypass_srtp) {
- srtp->rtp_cb(srtp->user_data, pkt, size);
+ /* Callback may be NULL if we receive stray packets (or when packet
+ * is received while we're being detached/re-attached).
+ */
+ if (srtp->rtp_cb) {
+ srtp->rtp_cb(srtp->user_data, pkt, size);
+ }
return;
}
@@ -858,6 +863,9 @@ static void srtp_rtcp_cb( void *user_data, void *pkt, pj_ssize_t size)
err_status_t err;
if (srtp->bypass_srtp) {
+ /* Callback may be NULL if we receive stray packets (or when packet
+ * is received while we're being detached/re-attached).
+ */
srtp->rtcp_cb(srtp->user_data, pkt, size);
return;
}