diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c index f481c10cfa..0be60a4b7e 100644 --- a/libavformat/flacdec.c +++ b/libavformat/flacdec.c @@ -38,10 +38,6 @@ static int parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size) int type, width, height; int len, ret = 0; - st = avformat_new_stream(s, NULL); - if (!st) - return AVERROR(ENOMEM); - pb = avio_alloc_context(buf, buf_size, 0, NULL, NULL, NULL, NULL); if (!pb) return AVERROR(ENOMEM); @@ -114,6 +110,12 @@ static int parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size) goto fail; } + st = avformat_new_stream(s, NULL); + if (!st) { + ret = AVERROR(ENOMEM); + goto fail; + } + av_init_packet(&st->attached_pic); st->attached_pic.data = data; st->attached_pic.size = len;