diff --git a/daemon/libs/iax2/jitterbuf.c b/daemon/libs/iax2/jitterbuf.c index 0c78e9a26e06a18d9ab6ba766b80015ff67454c3..4465740e5b22f03da9376b5d491c10a61852d279 100644 --- a/daemon/libs/iax2/jitterbuf.c +++ b/daemon/libs/iax2/jitterbuf.c @@ -256,8 +256,10 @@ static void history_calc_maxbuf(jitterbuf *jb) for (j=0;j<JB_HISTORY_MAXBUF_SZ;j++) { /* found where it fits */ if (toins < jb->hist_minbuf[j]) { - /* move over */ - memmove(jb->hist_minbuf + j + 1, jb->hist_minbuf + j, (JB_HISTORY_MAXBUF_SZ - (j + 1)) * sizeof(jb->hist_minbuf[0])); + /* move over if there's space */ + const size_t slide = (JB_HISTORY_MAXBUF_SZ - (j + 1)) * sizeof(jb->hist_minbuf[0]); + if (slide > 0) + memmove(jb->hist_minbuf + j + 1, jb->hist_minbuf + j, slide); /* insert */ jb->hist_minbuf[j] = toins;