by setting the FF_INPUTFORMAT_HEADER_CLEANUP flag. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> --- libavformat/icodec.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/libavformat/icodec.c b/libavformat/icodec.c index b47fa98f80..9449bb7315 100644 --- a/libavformat/icodec.c +++ b/libavformat/icodec.c @@ -96,10 +96,8 @@ static int read_header(AVFormatContext *s) break; st = avformat_new_stream(s, NULL); - if (!st) { - av_freep(&ico->images); + if (!st) return AVERROR(ENOMEM); - } st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; st->codecpar->width = avio_r8(pb); @@ -113,7 +111,6 @@ static int read_header(AVFormatContext *s) ico->images[i].size = avio_rl32(pb); if (ico->images[i].size <= 0) { av_log(s, AV_LOG_ERROR, "Invalid image size %d\n", ico->images[i].size); - av_freep(&ico->images); return AVERROR_INVALIDDATA; } ico->images[i].offset = avio_rl32(pb); @@ -130,7 +127,6 @@ static int read_header(AVFormatContext *s) break; case 40: if (ico->images[i].size < 40) { - av_freep(&ico->images); return AVERROR_INVALIDDATA; } st->codecpar->codec_id = AV_CODEC_ID_BMP; @@ -143,7 +139,6 @@ static int read_header(AVFormatContext *s) break; default: avpriv_request_sample(s, "codec %d", codec); - av_freep(&ico->images); return AVERROR_INVALIDDATA; } } @@ -224,4 +219,5 @@ AVInputFormat ff_ico_demuxer = { .read_packet = read_packet, .read_close = ico_read_close, .flags = AVFMT_NOTIMESTAMPS, + .flags_internal = FF_INPUTFORMAT_HEADER_CLEANUP, }; -- 2.20.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".