[FFmpeg-devel] [PATCH] dvdsubdec: reset buffer size on invalid over-large packets
wm4
nfxjfg at googlemail.com
Thu May 28 14:30:14 CEST 2015
Otherwise it will never be reset, and remain "stuck" in this state
forever. Can happen when seeking: the decoder will receive fragments
from different file positions, which triggers the condition easily.
---
Minor fix: reset this field in append_to_cached_buf() directly. My previous
patch missed one caller.
---
libavcodec/dvdsubdec.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavcodec/dvdsubdec.c b/libavcodec/dvdsubdec.c
index b7e87b9..7120f10 100644
--- a/libavcodec/dvdsubdec.c
+++ b/libavcodec/dvdsubdec.c
@@ -519,6 +519,7 @@ static int append_to_cached_buf(AVCodecContext *avctx,
if (ctx->buf_size >= sizeof(ctx->buf) - buf_size) {
av_log(avctx, AV_LOG_WARNING, "Attempt to reconstruct "
"too large SPU packets aborted.\n");
+ ctx->buf_size = 0;
return AVERROR_INVALIDDATA;
}
memcpy(ctx->buf + ctx->buf_size, buf, buf_size);
--
2.1.4
More information about the ffmpeg-devel
mailing list