westwood_vqa: do not free extradata on error in read_header

The extradata is already freed by avformat_open_input on
failure.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
(cherry picked from commit 76f5dfbfd9)

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
Luca Barbato 2013-06-27 04:30:20 +02:00
parent c6942a4b03
commit 26589aa810
1 changed files with 0 additions and 2 deletions

View File

@ -240,7 +240,6 @@ static int wsvqa_read_header(AVFormatContext *s,
header = (unsigned char *)st->codec->extradata; header = (unsigned char *)st->codec->extradata;
if (avio_read(pb, st->codec->extradata, VQA_HEADER_SIZE) != if (avio_read(pb, st->codec->extradata, VQA_HEADER_SIZE) !=
VQA_HEADER_SIZE) { VQA_HEADER_SIZE) {
av_free(st->codec->extradata);
return AVERROR(EIO); return AVERROR(EIO);
} }
st->codec->width = AV_RL16(&header[6]); st->codec->width = AV_RL16(&header[6]);
@ -279,7 +278,6 @@ static int wsvqa_read_header(AVFormatContext *s,
* FINF has been skipped and the file will be ready to be demuxed */ * FINF has been skipped and the file will be ready to be demuxed */
do { do {
if (avio_read(pb, scratch, VQA_PREAMBLE_SIZE) != VQA_PREAMBLE_SIZE) { if (avio_read(pb, scratch, VQA_PREAMBLE_SIZE) != VQA_PREAMBLE_SIZE) {
av_free(st->codec->extradata);
return AVERROR(EIO); return AVERROR(EIO);
} }
chunk_tag = AV_RB32(&scratch[0]); chunk_tag = AV_RB32(&scratch[0]);