avformat/flacdec: Reorder allocations to avoid leak on error

Fixes Coverity issue #1591795.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
(cherry picked from commit b50c5d02900363c17560cf79e2af0ca3073ee81a)
This commit is contained in:
Andreas Rheinhardt 2024-05-17 20:12:18 +02:00
parent 2bfcc11f51
commit 45765b7c2e

View File

@ -282,12 +282,6 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde
if (avio_seek(s->pb, *ppos, SEEK_SET) < 0) if (avio_seek(s->pb, *ppos, SEEK_SET) < 0)
return AV_NOPTS_VALUE; 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) { if (!flac->parser_dec) {
flac->parser_dec = avcodec_alloc_context3(NULL); flac->parser_dec = avcodec_alloc_context3(NULL);
if (!flac->parser_dec) if (!flac->parser_dec)
@ -298,6 +292,11 @@ static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_inde
return ret; return ret;
} }
parser = av_parser_init(st->codecpar->codec_id);
if (!parser)
return AV_NOPTS_VALUE;
parser->flags |= PARSER_FLAG_USE_CODEC_TS;
for (;;){ for (;;){
uint8_t *data; uint8_t *data;
int size; int size;