]> git.sesse.net Git - vlc/commitdiff
Fixed segfault on corrupted wav file.
authorLaurent Aimar <fenrir@videolan.org>
Sat, 28 Jun 2008 22:09:27 +0000 (22:09 +0000)
committerLaurent Aimar <fenrir@videolan.org>
Sat, 28 Jun 2008 22:09:27 +0000 (22:09 +0000)
modules/demux/wav.c

index e174ac4a5fd7525c2d05d27959b816b581ccc7ab..8380fab9407b0b42db9059710adc5d3faafaa5ec 100644 (file)
@@ -171,7 +171,8 @@ static int Open( vlc_object_t * p_this )
     p_sys->fmt.audio.i_blockalign = GetWLE( &p_wf->nBlockAlign );
     p_sys->fmt.i_bitrate = GetDWLE( &p_wf->nAvgBytesPerSec ) * 8;
     p_sys->fmt.audio.i_bitspersample = GetWLE( &p_wf->wBitsPerSample );
-    p_sys->fmt.i_extra = GetWLE( &p_wf->cbSize );
+    if( i_size >= sizeof(WAVEFORMATEX) )
+        p_sys->fmt.i_extra = __MIN( GetWLE( &p_wf->cbSize ), i_size - sizeof(WAVEFORMATEX) );
     i_extended = 0;
 
     /* Handle new WAVE_FORMAT_EXTENSIBLE wav files */