On 10/11/2019 8:36 PM, Andreas Rheinhardt wrote: > James Almer: >> Also propagate proper AVERROR codes while at it. >> >> Fixes ticket #8230. >> >> Signed-off-by: James Almer <jamr...@gmail.com> >> --- >> libavformat/dv.c | 20 +++++++++++++++----- >> 1 file changed, 15 insertions(+), 5 deletions(-) >> >> diff --git a/libavformat/dv.c b/libavformat/dv.c >> index eb44e0acb6..e99422d4b5 100644 >> --- a/libavformat/dv.c >> +++ b/libavformat/dv.c >> @@ -495,16 +495,18 @@ static int dv_read_header(AVFormatContext *s) >> { >> unsigned state, marker_pos = 0; >> RawDVContext *c = s->priv_data; >> + int ret; >> >> c->dv_demux = avpriv_dv_init_demux(s); >> if (!c->dv_demux) >> - return -1; >> + return AVERROR(ENOMEM); >> >> state = avio_rb32(s->pb); >> while ((state & 0xffffff7f) != 0x1f07003f) { >> if (avio_feof(s->pb)) { >> av_log(s, AV_LOG_ERROR, "Cannot find DV header.\n"); >> - return -1; >> + ret = AVERROR_INVALIDDATA; >> + goto fail; >> } >> if (state == 0x003f0700 || state == 0xff3f0700) >> marker_pos = avio_tell(s->pb); >> @@ -518,8 +520,10 @@ static int dv_read_header(AVFormatContext *s) >> AV_WB32(c->buf, state); >> >> if (avio_read(s->pb, c->buf + 4, DV_PROFILE_BYTES - 4) != >> DV_PROFILE_BYTES - 4 || >> - avio_seek(s->pb, -DV_PROFILE_BYTES, SEEK_CUR) < 0) >> - return AVERROR(EIO); >> + avio_seek(s->pb, -DV_PROFILE_BYTES, SEEK_CUR) < 0) { >> + ret = AVERROR(EIO); >> + goto fail; >> + } >> >> c->dv_demux->sys = av_dv_frame_profile(c->dv_demux->sys, >> c->buf, >> @@ -527,7 +531,8 @@ static int dv_read_header(AVFormatContext *s) >> if (!c->dv_demux->sys) { >> av_log(s, AV_LOG_ERROR, >> "Can't determine profile of DV input stream.\n"); >> - return -1; >> + ret = AVERROR_INVALIDDATA; >> + goto fail; >> } >> >> s->bit_rate = av_rescale_q(c->dv_demux->sys->frame_size, >> @@ -538,6 +543,11 @@ static int dv_read_header(AVFormatContext *s) >> dv_read_timecode(s); >> >> return 0; >> + >> +fail: >> + av_freep(&c->dv_demux); >> + >> + return ret; >> } >> >> static int dv_read_packet(AVFormatContext *s, AVPacket *pkt) >> > LGTM. > > - Andreas
Applied, thanks. _______________________________________________ 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".