--- /dev/null
+diff -Nur epgdumpr2_orig/ts.c epgdumpr2/ts.c
+--- epgdumpr2_orig/ts.c 2009-03-15 21:35:57.000000000 +0900
++++ epgdumpr2/ts.c 2009-07-19 18:38:17.000000000 +0900
+@@ -202,6 +202,11 @@
+ pk.payloadlen -= 1;
+ }
+ memset(pk.payload, 0xFF, sizeof(pk.payload));
++#if 1 /* 07/07/2009 add: */
++ if( pk.payloadlen > sizeof(pk.payload) ){
++ continue;
++ }
++#endif
+ memcpy(pk.payload, payptr, pk.payloadlen);
+
+ /*
+@@ -307,6 +312,14 @@
+
+ int checkcrc(SECcache *secs) {
+
++#if 1 /* 07/07/2009 add: °Û¾ï¾õÂÖ²óÈò¤Î¤¿¤á */
++ /* ¥»¥¯¥·¥ç¥óºÇÂçŤòĶ¤¨¤ë¤³¤È¤Ê¤É¤¢¤êÆÀ¤Ê¤¤¤Ï¤º¤À¤¬... */
++ if( secs->seclen > MAXSECLEN ){
++ /* ¤è¤¯Ê¬¤«¤é¤ó¤Î¤ÇÇË´þ¤·¤Æ¤ä¤ë */
++ return 0;
++ }
++#endif
++
+ /* ¥»¥¯¥·¥ç¥ó¤Î½ª¤ê¤ËÃÖ¤«¤ì¤ë4¥Ð¥¤¥È¤ÎCRC32¤Ï¡¢
+ CRC·×»»¤Î·ë²Ì0¤Ë¤Ê¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£
+ Ãͤ¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢¥¨¥é¡¼¤Ê¤Î¤ÇÂоݳ°¤Ë¤¹¤ë */