# HG changeset patch # User michael # Date 1253692011 0 # Node ID e99054a89bfecddc1570752ad861a6c33634e189 # Parent afaf58d1e894aa11b20099ff3a86a72378046a9d Check validity of channels & samplerate. This may be security relevant. Based on 2 patches by chrome. diff -r afaf58d1e894 -r e99054a89bfe vorbis_dec.c --- a/vorbis_dec.c Wed Sep 23 05:38:12 2009 +0000 +++ b/vorbis_dec.c Wed Sep 23 07:46:51 2009 +0000 @@ -848,8 +848,16 @@ } vc->version=get_bits_long(gb, 32); //FIXME check 0 - vc->audio_channels=get_bits(gb, 8); //FIXME check >0 - vc->audio_samplerate=get_bits_long(gb, 32); //FIXME check >0 + vc->audio_channels=get_bits(gb, 8); + if(vc->audio_channels <= 0){ + av_log(vc->avccontext, AV_LOG_ERROR, "Invalid number of channels\n"); + return -1; + } + vc->audio_samplerate=get_bits_long(gb, 32); + if(vc->audio_samplerate <= 0){ + av_log(vc->avccontext, AV_LOG_ERROR, "Invalid samplerate\n"); + return -1; + } vc->bitrate_maximum=get_bits_long(gb, 32); vc->bitrate_nominal=get_bits_long(gb, 32); vc->bitrate_minimum=get_bits_long(gb, 32);