Commit 34f6d1a7 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/pnm_parser: Use memmove() to handle "overread"

This is significantly faster

Fixes: Timeout (1sec after this and the previous commit)
Fixes: 15558/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PPM_fuzzer-5705273643106304

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpegSigned-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 8a24d2cc
......@@ -41,8 +41,11 @@ static int pnm_parse(AVCodecParserContext *s, AVCodecContext *avctx,
int next = END_NOT_FOUND;
int skip = 0;
for (; pc->overread > 0; pc->overread--) {
pc->buffer[pc->index++]= pc->buffer[pc->overread_index++];
if (pc->overread > 0) {
memmove(pc->buffer + pc->index, pc->buffer + pc->overread_index, pc->overread);
pc->index += pc->overread;
pc->overread_index += pc->overread;
pc->overread = 0;
}
if (pnmpc->remaining_bytes) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment