From 303d33a1dbf4bc43a62720c2e673591916325e33 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 5 Apr 2006 22:05:04 +0000 Subject: Protect RTCP packet lost calculation against incorrect packet expectations git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@389 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/rtcp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'pjmedia') diff --git a/pjmedia/src/pjmedia/rtcp.c b/pjmedia/src/pjmedia/rtcp.c index dd3ca304..6fc3a752 100644 --- a/pjmedia/src/pjmedia/rtcp.c +++ b/pjmedia/src/pjmedia/rtcp.c @@ -261,7 +261,10 @@ static void rtcp_build_rtcp(pjmedia_rtcp_session *s, /* Total lost. */ expected = pj_ntohl(rtcp_pkt->rr.last_seq) - s->seq_ctrl.base_seq; - u32 = expected - s->received; + if (expected >= s->received) + u32 = expected - s->received; + else + u32 = 0; rtcp_pkt->rr.total_lost_2 = (u32 >> 16) & 0x00FF; rtcp_pkt->rr.total_lost_1 = (u32 >> 8) & 0x00FF; rtcp_pkt->rr.total_lost_0 = u32 & 0x00FF; -- cgit v1.2.3