Skip to content

Commit

Permalink
avformat/oggparseogm: check input size before reading parameters
Browse files Browse the repository at this point in the history
Fixes use of uninitialized memory
Fixes: msan_uninit-mem_7f4d0daad100_3599_anOTHERS_DixX_in_Ogg_Sample.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <[email protected]>
  • Loading branch information
michaelni committed Dec 26, 2013
1 parent d164ad3 commit 6359872
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions libavformat/oggparseogm.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,18 @@ ogm_dshow_header(AVFormatContext *s, int idx)
t = AV_RL32(p + 96);

if(t == 0x05589f80){
if (os->psize < 184)
return AVERROR_INVALIDDATA;

st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
st->codec->codec_id = ff_codec_get_id(ff_codec_bmp_tags, AV_RL32(p + 68));
avpriv_set_pts_info(st, 64, AV_RL64(p + 164), 10000000);
st->codec->width = AV_RL32(p + 176);
st->codec->height = AV_RL32(p + 180);
} else if(t == 0x05589f81){
if (os->psize < 136)
return AVERROR_INVALIDDATA;

st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
st->codec->codec_id = ff_codec_get_id(ff_codec_wav_tags, AV_RL16(p + 124));
st->codec->channels = AV_RL16(p + 126);
Expand Down

0 comments on commit 6359872

Please sign in to comment.