Commit 3e1e9f15 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Fix out-of-bound read uncovered by sam

parent 1c3fcde6
...@@ -210,38 +210,38 @@ static int AVI_ChunkRead_list( stream_t *s, avi_chunk_t *p_container ) ...@@ -210,38 +210,38 @@ static int AVI_ChunkRead_list( stream_t *s, avi_chunk_t *p_container )
p_read += 8; \ p_read += 8; \
i_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 ) \ #define AVI_READCHUNK_EXIT( code ) \
free( p_buff ); \ free( p_buff ); \
if( i_read < 0 ) \
{ \
msg_Warn( (vlc_object_t*)s, "not enough data" ); \
} \
return code return code
static inline uint8_t GetB( uint8_t *ptr )
{
return *ptr;
}
#define AVI_READ1BYTE( i_byte ) \ #define AVI_READ1BYTE( i_byte ) \
i_byte = *p_read; \ AVI_READ( i_byte, GetB, 1 )
p_read++; \
i_read--
#define AVI_READ2BYTES( i_word ) \ #define AVI_READ2BYTES( i_word ) \
i_word = GetWLE( p_read ); \ AVI_READ( i_word, GetWLE, 2 )
p_read += 2; \
i_read -= 2
#define AVI_READ4BYTES( i_dword ) \ #define AVI_READ4BYTES( i_dword ) \
i_dword = GetDWLE( p_read ); \ AVI_READ( i_dword, GetDWLE, 4 )
p_read += 4; \
i_read -= 4
#define AVI_READ8BYTES( i_dword ) \ #define AVI_READ8BYTES( i_qword ) \
i_dword = GetQWLE( p_read ); \ AVI_READ( i_qword, GetQWLE, 8 )
p_read += 8; \
i_read -= 8
#define AVI_READFOURCC( i_dword ) \ #define AVI_READFOURCC( i_dword ) \
i_dword = GetFOURCC( p_read ); \ AVI_READ( i_dword, GetFOURCC, 4 )
p_read += 4; \
i_read -= 4
static int AVI_ChunkRead_avih( stream_t *s, avi_chunk_t *p_chk ) static int AVI_ChunkRead_avih( stream_t *s, avi_chunk_t *p_chk )
{ {
......
...@@ -1447,7 +1447,7 @@ static void CloseModule( module_handle_t handle ) ...@@ -1447,7 +1447,7 @@ static void CloseModule( module_handle_t handle )
FreeLibrary( handle ); FreeLibrary( handle );
#elif defined(HAVE_DL_DLOPEN) #elif defined(HAVE_DL_DLOPEN)
dlclose( handle ); //dlclose( handle );
#elif defined(HAVE_DL_SHL_LOAD) #elif defined(HAVE_DL_SHL_LOAD)
shl_unload( handle ); shl_unload( handle );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment