Message ID | AS8P250MB0744DF49E95F46B441B8F7808FEE2@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM |
---|---|
State | Accepted |
Commit | b50c5d02900363c17560cf79e2af0ca3073ee81a |
Headers | show |
Series | [FFmpeg-devel] avformat/flacdec: Reorder allocations to avoid leak on error | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
Andreas Rheinhardt: > Fixes Coverity issue #1591795. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> > --- > libavformat/flacdec.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c > index 3d35da5fea..3c317acaee 100644 > --- a/libavformat/flacdec.c > +++ b/libavformat/flacdec.c > @@ -283,12 +283,6 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde > if (avio_seek(s->pb, *ppos, SEEK_SET) < 0) > return AV_NOPTS_VALUE; > > - parser = av_parser_init(st->codecpar->codec_id); > - if (!parser){ > - return AV_NOPTS_VALUE; > - } > - parser->flags |= PARSER_FLAG_USE_CODEC_TS; > - > if (!flac->parser_dec) { > flac->parser_dec = avcodec_alloc_context3(NULL); > if (!flac->parser_dec) > @@ -299,6 +293,11 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde > return ret; > } > > + parser = av_parser_init(st->codecpar->codec_id); > + if (!parser) > + return AV_NOPTS_VALUE; > + parser->flags |= PARSER_FLAG_USE_CODEC_TS; > + > for (;;){ > uint8_t *data; > int size; Will apply this patch tomorrow unless there are objections. - Andreas
diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c index 3d35da5fea..3c317acaee 100644 --- a/libavformat/flacdec.c +++ b/libavformat/flacdec.c @@ -283,12 +283,6 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde if (avio_seek(s->pb, *ppos, SEEK_SET) < 0) return AV_NOPTS_VALUE; - parser = av_parser_init(st->codecpar->codec_id); - if (!parser){ - return AV_NOPTS_VALUE; - } - parser->flags |= PARSER_FLAG_USE_CODEC_TS; - if (!flac->parser_dec) { flac->parser_dec = avcodec_alloc_context3(NULL); if (!flac->parser_dec) @@ -299,6 +293,11 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde return ret; } + parser = av_parser_init(st->codecpar->codec_id); + if (!parser) + return AV_NOPTS_VALUE; + parser->flags |= PARSER_FLAG_USE_CODEC_TS; + for (;;){ uint8_t *data; int size;
Fixes Coverity issue #1591795. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavformat/flacdec.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)