From: RĂ©mi Duraffort Date: Wed, 28 Jul 2010 18:42:05 +0000 (+0200) Subject: avi: do not allocate memory of size 0 (if i_extra == 0, p_extra is not released). X-Git-Tag: 1.2.0-pre1~5633 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=ba0b10204bf3d5809a16f3ffa2d326ca754c4f4d;p=vlc avi: do not allocate memory of size 0 (if i_extra == 0, p_extra is not released). --- diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c index ebb8f565c4..a6b9154f5b 100644 --- a/modules/demux/avi/avi.c +++ b/modules/demux/avi/avi.c @@ -437,9 +437,12 @@ static int Open( vlc_object_t * p_this ) fmt.i_extra = __MIN( p_auds->p_wf->cbSize, p_auds->i_chunk_size - sizeof(WAVEFORMATEX) ); - fmt.p_extra = malloc( fmt.i_extra ); - if( !fmt.p_extra ) goto error; - memcpy( fmt.p_extra, &p_auds->p_wf[1], fmt.i_extra ); + if( fmt.i_extra > 0 ) + { + fmt.p_extra = malloc( fmt.i_extra ); + if( !fmt.p_extra ) goto error; + memcpy( fmt.p_extra, &p_auds->p_wf[1], fmt.i_extra ); + } break; case( AVIFOURCC_vids ): @@ -512,9 +515,12 @@ static int Open( vlc_object_t * p_this ) fmt.i_extra = __MIN( p_vids->p_bih->biSize - sizeof( BITMAPINFOHEADER ), p_vids->i_chunk_size - sizeof(BITMAPINFOHEADER) ); - fmt.p_extra = malloc( fmt.i_extra ); - if( !fmt.p_extra ) goto error; - memcpy( fmt.p_extra, &p_vids->p_bih[1], fmt.i_extra ); + if( fmt.i_extra > 0 ) + { + fmt.p_extra = malloc( fmt.i_extra ); + if( !fmt.p_extra ) goto error; + memcpy( fmt.p_extra, &p_vids->p_bih[1], fmt.i_extra ); + } msg_Dbg( p_demux, "stream[%d] video(%4.4s) %"PRIu32"x%"PRIu32" %dbpp %ffps", i, (char*)&p_vids->p_bih->biCompression,