[vlc-devel] commit: nuv: Fix some warnings and fix an issue where some unitialized pointer access could lead to a crash . (Pierre d'Herbemont )
git version control
git at videolan.org
Fri Aug 21 01:36:15 CEST 2009
vlc | branch: master | Pierre d'Herbemont <pdherbemont at free.fr> | Fri Aug 21 01:21:17 2009 +0200| [3bbe374b28aa3452cc2da64becb3445cf1d20833] | committer: Pierre d'Herbemont
nuv: Fix some warnings and fix an issue where some unitialized pointer access could lead to a crash.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3bbe374b28aa3452cc2da64becb3445cf1d20833
---
modules/demux/nuv.c | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/modules/demux/nuv.c b/modules/demux/nuv.c
index 99cad83..a56c872 100644
--- a/modules/demux/nuv.c
+++ b/modules/demux/nuv.c
@@ -461,7 +461,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
{
i64 = stream_Size( p_demux->s );
if( i64 > 0 )
- *pf = (double)stream_Tell( p_demux->s ) / (double)i64;
+ {
+ double current = stream_Tell( p_demux->s );
+ *pf = current / (double)i64;
+ }
else
*pf = 0.0;
}
@@ -723,8 +726,8 @@ static int SeekTableLoad( demux_t *p_demux, demux_sys_t *p_sys )
{
frame_header_t fh;
int64_t i_original_pos;
- uint8_t* p_seek_table;
- uint8_t* p_kfa_table;
+ uint8_t* p_seek_table = NULL;
+ uint8_t* p_kfa_table = NULL;
int32_t i_seek_elements = 0, i_kfa_elements = 0, j;
int64_t i_time, i_offset;
int keyframe, last_keyframe = 0, frame = 0, kfa_entry_id = 0;
@@ -804,12 +807,17 @@ static int SeekTableLoad( demux_t *p_demux, demux_sys_t *p_sys )
}
}
-
if( i_kfa_elements > 0 )
msg_Warn( p_demux, "untested keyframe adjust support, upload samples" );
- for(j=0; j < i_seek_elements; j++)
+ for(j = 0; j < i_seek_elements; j++)
{
+ if( !p_seek_table || !p_kfa_table)
+ {
+ free(p_seek_table);
+ free(p_kfa_table);
+ return VLC_EGENERIC;
+ }
#if 0
uint8_t* p = p_seek_table + j * 12;
msg_Dbg( p_demux, "%x %x %x %x %x %x %x %x %x %x %x %x",
More information about the vlc-devel
mailing list