diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c index 1c9aabd6fd..5e95d10efd 100644 --- a/libavformat/rawdec.c +++ b/libavformat/rawdec.c @@ -45,6 +45,10 @@ int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt) if (ret < 0) { av_free_packet(pkt); return ret; + } else if (ret < size) { + /* initialize end of packet for partial reads to avoid reading + * uninitialized data on allowed overreads */ + memset(pkt->data + ret, 0, FF_INPUT_BUFFER_PADDING_SIZE); } pkt->size = ret; return ret;