summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pjmedia/src/pjmedia/jbuf.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/jbuf.c b/pjmedia/src/pjmedia/jbuf.c
index c9a47f29..2cbb1643 100644
--- a/pjmedia/src/pjmedia/jbuf.c
+++ b/pjmedia/src/pjmedia/jbuf.c
@@ -267,6 +267,13 @@ static pj_bool_t jb_framelist_put_at(jb_framelist_t *framelist,
framelist->flist_max_count;
}
} else {
+ // check if frame is not too late, but watch out for sequence restart.
+ if (index < framelist->flist_origin &&
+ framelist->flist_origin - index < 0x7FFF)
+ {
+ return PJ_FALSE;
+ }
+
where = framelist->flist_tail;
framelist->flist_origin = index;
framelist->flist_tail = (framelist->flist_tail + 1) %