From: Haihao Xiang <[email protected]> offset_w might be updated after growing the FIFO
Fix ticket #9630 Tested-by: U. Artie Eoff <[email protected]> Reviewed-by: mkver Reviewed-by: U. Artie Eoff <[email protected]> Signed-off-by: Haihao Xiang <[email protected]> --- libavutil/fifo.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavutil/fifo.c b/libavutil/fifo.c index 0af0154945..02e0ec3f0d 100644 --- a/libavutil/fifo.c +++ b/libavutil/fifo.c @@ -147,13 +147,15 @@ static int fifo_write_common(AVFifo *f, const uint8_t *buf, size_t *nb_elems, AVFifoCB read_cb, void *opaque) { size_t to_write = *nb_elems; - size_t offset_w = f->offset_w; + size_t offset_w; int ret = 0; ret = fifo_check_space(f, to_write); if (ret < 0) return ret; + offset_w = f->offset_w; + while (to_write > 0) { size_t len = FFMIN(f->nb_elems - offset_w, to_write); uint8_t *wptr = f->buffer + offset_w * f->elem_size; -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
