Commit 5c3079aa authored by Michael Niedermayer's avatar Michael Niedermayer

avformat/iss: check sscanf() return code

Fixes use of uninitialized data
Fixes: msan_uninit-mem_7f883205ce82_15_0001010100.iss
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 6da21c1f
......@@ -76,14 +76,23 @@ static av_cold int iss_read_header(AVFormatContext *s)
get_token(pb, token, sizeof(token)); //"IMA_ADPCM_Sound"
get_token(pb, token, sizeof(token)); //packet size
sscanf(token, "%d", &iss->packet_size);
if (sscanf(token, "%d", &iss->packet_size) != 1) {
av_log(s, AV_LOG_ERROR, "Failed parsing packet size\n");
return AVERROR_INVALIDDATA;
}
get_token(pb, token, sizeof(token)); //File ID
get_token(pb, token, sizeof(token)); //out size
get_token(pb, token, sizeof(token)); //stereo
sscanf(token, "%d", &stereo);
if (sscanf(token, "%d", &stereo) != 1) {
av_log(s, AV_LOG_ERROR, "Failed parsing stereo flag\n");
return AVERROR_INVALIDDATA;
}
get_token(pb, token, sizeof(token)); //Unknown1
get_token(pb, token, sizeof(token)); //RateDivisor
sscanf(token, "%d", &rate_divisor);
if (sscanf(token, "%d", &rate_divisor) != 1) {
av_log(s, AV_LOG_ERROR, "Failed parsing rate_divisor\n");
return AVERROR_INVALIDDATA;
}
get_token(pb, token, sizeof(token)); //Unknown2
get_token(pb, token, sizeof(token)); //Version ID
get_token(pb, token, sizeof(token)); //Size
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment