From 7bb8f38da891da9ae91e8714719235fff6d18edd Mon Sep 17 00:00:00 2001 From: reimar Date: Sun, 12 Feb 2006 09:28:09 +0000 Subject: add some sanity checks to new/resize_demux_packet git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17598 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demuxer.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/demuxer.h b/libmpdemux/demuxer.h index e184280b40..7477bad5cc 100644 --- a/libmpdemux/demuxer.h +++ b/libmpdemux/demuxer.h @@ -190,17 +190,18 @@ inline static demux_packet_t* new_demux_packet(int len){ dp->flags=0; dp->refcount=1; dp->master=NULL; - dp->buffer=len?(unsigned char*)malloc(len+8):NULL; - if(len) memset(dp->buffer+len,0,8); + if (len > 0 && (dp->buffer = malloc(len + 8))) + memset(dp->buffer + len, 0, 8); + else + dp->len = 0; return dp; } inline static void resize_demux_packet(demux_packet_t* dp, int len) { - if(len) + if(len > 0) { dp->buffer=(unsigned char *)realloc(dp->buffer,len+8); - memset(dp->buffer+len,0,8); } else { @@ -208,6 +209,10 @@ inline static void resize_demux_packet(demux_packet_t* dp, int len) dp->buffer=NULL; } dp->len=len; + if (dp->buffer) + memset(dp->buffer + len, 0, 8); + else + dp->len = 0; } inline static demux_packet_t* clone_demux_packet(demux_packet_t* pack){ -- cgit v1.2.3