diff --git a/libavformat/icodec.c b/libavformat/icodec.c index d53c33ab0a..eab0478211 100644 --- a/libavformat/icodec.c +++ b/libavformat/icodec.c @@ -64,6 +64,7 @@ static int read_header(AVFormatContext *s, AVFormatParameters *ap) for (i = 0; i < ico->nb_images; i++) { AVStream *st; + int tmp; if (avio_seek(pb, 6 + i * 16, SEEK_SET) < 0) break; @@ -97,10 +98,12 @@ static int read_header(AVFormatContext *s, AVFormatParameters *ap) if (ico->images[i].size < 40) return AVERROR_INVALIDDATA; st->codec->codec_id = CODEC_ID_BMP; - if (!st->codec->width || !st->codec->height) { - st->codec->width = avio_rl32(pb); - st->codec->height = avio_rl32(pb) / 2; - } + tmp = avio_rl32(pb); + if (tmp) + st->codec->width = tmp; + tmp = avio_rl32(pb); + if (tmp) + st->codec->height = tmp / 2; break; default: av_log_ask_for_sample(s, "unsupported codec\n");