diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c index 95a273d706804c72a53b5125c1a2053a32097fab..0820d88ee6f253cce241d828bc4c067ad34489a8 100644 --- a/modules/demux/avi/avi.c +++ b/modules/demux/avi/avi.c @@ -665,15 +665,16 @@ static int Open( vlc_object_t * p_this ) * directly after BITMAPINFORHEADER in the BITMAPINFO structure */ if( fmt.i_extra > 0 ) { - const uint8_t *p_pal = fmt.p_extra; - fmt.video.p_palette = calloc( 1, sizeof(video_palette_t) ); - fmt.video.p_palette->i_entries = __MIN(fmt.i_extra/4, 256); - - for( int k = 0; k < fmt.video.p_palette->i_entries; k++ ) + if( likely(fmt.video.p_palette) ) { - for( int j = 0; j < 4; j++ ) - fmt.video.p_palette->palette[k][j] = p_pal[4*k+j]; + const uint8_t *p_pal = fmt.p_extra; + fmt.video.p_palette->i_entries = __MIN(fmt.i_extra/4, 256); + for( int k = 0; k < fmt.video.p_palette->i_entries; k++ ) + { + for( int j = 0; j < 4; j++ ) + fmt.video.p_palette->palette[k][j] = p_pal[4*k+j]; + } } } }