diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c index 72891e7cd8..e2a2ece9c4 100644 --- a/libavformat/mpjpegdec.c +++ b/libavformat/mpjpegdec.c @@ -83,13 +83,13 @@ static int mpjpeg_read_probe(AVProbeData *p) char line[128] = { 0 }; int ret = 0; + if (p->buf_size < 2 || p->buf[0] != '-' || p->buf[1] != '-') + return 0; + pb = avio_alloc_context(p->buf, p->buf_size, 0, NULL, NULL, NULL, NULL); if (!pb) return AVERROR(ENOMEM); - if (p->buf_size < 2 || p->buf[0] != '-' || p->buf[1] != '-') - goto end; - while (!pb->eof_reached) { ret = get_line(pb, line, sizeof(line)); if (ret < 0) @@ -101,7 +101,7 @@ static int mpjpeg_read_probe(AVProbeData *p) break; } } -end: + av_free(pb); return ret;