Fix out-of-bound read uncovered by sam

This commit is contained in:
Rémi Denis-Courmont 2007-01-14 19:32:20 +00:00
parent 1c3fcde6ec
commit 3e1e9f157b
2 changed files with 21 additions and 21 deletions

View File

@ -210,38 +210,38 @@ static int AVI_ChunkRead_list( stream_t *s, avi_chunk_t *p_container )
p_read += 8; \
i_read -= 8
#define AVI_READ( res, func, size ) \
if( i_read < size ) { \
free( p_buff); \
return VLC_EGENERIC; \
} \
i_read -= size; \
res = func( p_read ); \
p_read += size \
#define AVI_READCHUNK_EXIT( code ) \
free( p_buff ); \
if( i_read < 0 ) \
{ \
msg_Warn( (vlc_object_t*)s, "not enough data" ); \
} \
return code
static inline uint8_t GetB( uint8_t *ptr )
{
return *ptr;
}
#define AVI_READ1BYTE( i_byte ) \
i_byte = *p_read; \
p_read++; \
i_read--
AVI_READ( i_byte, GetB, 1 )
#define AVI_READ2BYTES( i_word ) \
i_word = GetWLE( p_read ); \
p_read += 2; \
i_read -= 2
AVI_READ( i_word, GetWLE, 2 )
#define AVI_READ4BYTES( i_dword ) \
i_dword = GetDWLE( p_read ); \
p_read += 4; \
i_read -= 4
AVI_READ( i_dword, GetDWLE, 4 )
#define AVI_READ8BYTES( i_dword ) \
i_dword = GetQWLE( p_read ); \
p_read += 8; \
i_read -= 8
#define AVI_READ8BYTES( i_qword ) \
AVI_READ( i_qword, GetQWLE, 8 )
#define AVI_READFOURCC( i_dword ) \
i_dword = GetFOURCC( p_read ); \
p_read += 4; \
i_read -= 4
AVI_READ( i_dword, GetFOURCC, 4 )
static int AVI_ChunkRead_avih( stream_t *s, avi_chunk_t *p_chk )
{

View File

@ -1447,7 +1447,7 @@ static void CloseModule( module_handle_t handle )
FreeLibrary( handle );
#elif defined(HAVE_DL_DLOPEN)
dlclose( handle );
//dlclose( handle );
#elif defined(HAVE_DL_SHL_LOAD)
shl_unload( handle );