avcodec/flashsv: check avio_read() return in mov_read_udta_string()

Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f3f90a8606a_3018_Sequence_1-Apple_ProRes_422_LT.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-01-14 18:27:50 +01:00
parent b821def9f5
commit b2ae92110f
1 changed files with 3 additions and 1 deletions

View File

@ -394,7 +394,9 @@ static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if (data_type == 3 || (data_type == 0 && (langcode < 0x400 || langcode == 0x7fff))) { // MAC Encoded
mov_read_mac_string(c, pb, str_size, str, sizeof(str));
} else {
avio_read(pb, str, str_size);
int ret = avio_read(pb, str, str_size);
if (ret != str_size)
return ret < 0 ? ret : AVERROR_INVALIDDATA;
str[str_size] = 0;
}
av_dict_set(&c->fc->metadata, key, str, 0);