TS demuxer bug fixes
authorMark Calderbank <mark@vomp.tv>
Sun, 25 Nov 2007 12:14:50 +0000 (12:14 +0000)
committerMark Calderbank <mark@vomp.tv>
Sun, 25 Nov 2007 12:14:50 +0000 (12:14 +0000)
demuxerts.cc

index f06727b422f1b6569ba345ac3be1c6ae2e835d6b..c0d36fb721297c813bb1fd87f85f4159b3f08fae 100644 (file)
@@ -128,7 +128,7 @@ int DemuxerTS::put(UCHAR* buf, int len)
   }
 
   // Position ourselves at a candidate TS packet
-  while (*buf != TS_SIG && len)
+  while (len > 0 && *buf != TS_SIG)
   {
     Log::getInstance()->log("TS Demuxer", Log::ERR, "TS Misaligned!");
     buf++; ret++; len--;
@@ -146,7 +146,8 @@ int DemuxerTS::put(UCHAR* buf, int len)
 
     if (buf[TS_SIZE] != TS_SIG)
     { // Not terminated correctly.
-      while (*buf != TS_SIG && len)
+      buf++; ret++; len--;
+      while (len > 0 && *buf != TS_SIG)
       {
         buf++; ret++; len--;
       }