OSDN Git Service

add dist
[rec10/rec10-git.git] / dist / trunk / tstools / epgdump / epgdump_segfault_fix_patch(last).txt
diff --git a/dist/trunk/tstools/epgdump/epgdump_segfault_fix_patch(last).txt b/dist/trunk/tstools/epgdump/epgdump_segfault_fix_patch(last).txt
new file mode 100755 (executable)
index 0000000..e402651
--- /dev/null
@@ -0,0 +1,30 @@
+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¤Ë¤Ê¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤ë¡£
+          Ãͤ¬È¯À¸¤·¤¿¾ì¹ç¤Ï¡¢¥¨¥é¡¼¤Ê¤Î¤ÇÂоݳ°¤Ë¤¹¤ë */