diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-10-31 16:26:27 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-10-31 16:26:27 +0000 |
commit | e33c8a7050450a7f2c90623fc3dd5520cb0db85b (patch) | |
tree | 1058259e7186b6a05c8987b5c9b0a342ec4d3c28 | |
parent | df432c0c6c3d436fca47bc3a83d46b1603cea182 (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.c | 10 |
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; } |