diff libmpdemux/demuxer.h @ 17597:a3a4f7408f90

add some sanity checks to new/resize_demux_packet
author reimar
date Sun, 12 Feb 2006 09:28:09 +0000
parents 6c541a8421ca
children c7d0f6322721
line wrap: on
line diff
--- a/libmpdemux/demuxer.h	Sun Feb 12 08:03:58 2006 +0000
+++ b/libmpdemux/demuxer.h	Sun Feb 12 09:28:09 2006 +0000
@@ -190,17 +190,18 @@
   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 @@
      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){