summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-analyzer/tcpdump')
-rw-r--r--net-analyzer/tcpdump/ChangeLog8
-rw-r--r--net-analyzer/tcpdump/Manifest13
-rw-r--r--net-analyzer/tcpdump/files/digest-tcpdump-3.8.3-r21
-rw-r--r--net-analyzer/tcpdump/files/tcpdump-3.8.3-gentoo.patch95
-rw-r--r--net-analyzer/tcpdump/tcpdump-3.8.3-r2.ebuild44
5 files changed, 150 insertions, 11 deletions
diff --git a/net-analyzer/tcpdump/ChangeLog b/net-analyzer/tcpdump/ChangeLog
index 989f093803d7..ef2a01052e8d 100644
--- a/net-analyzer/tcpdump/ChangeLog
+++ b/net-analyzer/tcpdump/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-analyzer/tcpdump
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-analyzer/tcpdump/ChangeLog,v 1.34 2005/01/31 14:18:01 dragonheart Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-analyzer/tcpdump/ChangeLog,v 1.35 2005/05/06 22:16:12 vanquirius Exp $
+
+*tcpdump-3.8.3-r2 (06 May 2005)
+
+ 06 May 2005; Marcelo Goes <vanquirius@gentoo.org>
+ +files/tcpdump-3.8.3-gentoo.patch, +tcpdump-3.8.3-r2.ebuild:
+ Adding security patch.
31 Jan 2005; Daniel Black <dragonheart@gentoo.org> tcpdump-3.8.3-r1.ebuild:
virtual/libpcap transition
diff --git a/net-analyzer/tcpdump/Manifest b/net-analyzer/tcpdump/Manifest
index cb640a64f2bd..b77553833df9 100644
--- a/net-analyzer/tcpdump/Manifest
+++ b/net-analyzer/tcpdump/Manifest
@@ -1,14 +1,7 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
MD5 8c5b3bdacca3d85a1d84a55f3db230c5 tcpdump-3.8.3-r1.ebuild 1092
MD5 0f61b66cd56e867c1e3e3414f347759c ChangeLog 4616
MD5 1465cdeb961745379a8ae1402b3e51ab metadata.xml 268
+MD5 5a315f0a27e3d4ae6e9d1bdff6120afe tcpdump-3.8.3-r2.ebuild 1168
MD5 d285bb203f9e48fc23492e4c72d61a94 files/digest-tcpdump-3.8.3-r1 65
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.0 (GNU/Linux)
-
-iD8DBQFCDJHfEZCkKN40op4RAhgsAKCaoDE2r46BDeh5dL6cZdkF30NOlwCcC+SN
-Y0pLR77mZk4F3LDOXH+n8Yo=
-=nE3b
------END PGP SIGNATURE-----
+MD5 d285bb203f9e48fc23492e4c72d61a94 files/digest-tcpdump-3.8.3-r2 65
+MD5 4d0df7aa1535098ccef25ba7e86e5e95 files/tcpdump-3.8.3-gentoo.patch 4002
diff --git a/net-analyzer/tcpdump/files/digest-tcpdump-3.8.3-r2 b/net-analyzer/tcpdump/files/digest-tcpdump-3.8.3-r2
new file mode 100644
index 000000000000..3fe68092ba2f
--- /dev/null
+++ b/net-analyzer/tcpdump/files/digest-tcpdump-3.8.3-r2
@@ -0,0 +1 @@
+MD5 30645001f4b97019677cad88d3811904 tcpdump-3.8.3.tar.gz 567116
diff --git a/net-analyzer/tcpdump/files/tcpdump-3.8.3-gentoo.patch b/net-analyzer/tcpdump/files/tcpdump-3.8.3-gentoo.patch
new file mode 100644
index 000000000000..d18d66ebfb9c
--- /dev/null
+++ b/net-analyzer/tcpdump/files/tcpdump-3.8.3-gentoo.patch
@@ -0,0 +1,95 @@
+diff --exclude='*~' -Naur tcpdump-3.8.3.orig/print-bgp.c tcpdump-3.8.3/print-bgp.c
+--- tcpdump-3.8.3.orig/print-bgp.c 2005-05-06 17:41:55.000000000 -0300
++++ tcpdump-3.8.3/print-bgp.c 2005-05-06 17:45:08.000000000 -0300
+@@ -1216,6 +1216,8 @@
+ tptr = pptr + len;
+ break;
+ }
++ if (advance < 0) /* infinite loop protection */
++ break;
+ tptr += advance;
+ }
+ break;
+diff --exclude='*~' -Naur tcpdump-3.8.3.orig/print-isoclns.c tcpdump-3.8.3/print-isoclns.c
+--- tcpdump-3.8.3.orig/print-isoclns.c 2005-05-06 17:41:55.000000000 -0300
++++ tcpdump-3.8.3/print-isoclns.c 2005-05-06 17:53:57.000000000 -0300
+@@ -1250,11 +1250,11 @@
+ break;
+ case L1_CSNP:
+ case L2_CSNP:
+- printf(", src-id %s", isis_print_id(header_csnp->source_id,SYSTEM_ID_LEN));
++ printf(", src-id %s", isis_print_id(header_csnp->source_id,NODE_ID_LEN));
+ break;
+ case L1_PSNP:
+ case L2_PSNP:
+- printf(", src-id %s", isis_print_id(header_psnp->source_id,SYSTEM_ID_LEN));
++ printf(", src-id %s", isis_print_id(header_psnp->source_id,NODE_ID_LEN));
+ break;
+
+ }
+@@ -1506,6 +1506,9 @@
+ tlv_type,
+ tlv_len);
+
++ if (tlv_len == 0) /* something is malformed */
++ break;
++
+ /* now check if we have a decoder otherwise do a hexdump at the end*/
+ switch (tlv_type) {
+ case TLV_AREA_ADDR:
+@@ -1536,7 +1539,7 @@
+ break;
+
+ case TLV_ISNEIGH_VARLEN:
+- if (!TTEST2(*tptr, 1))
++ if (!TTEST2(*tptr, 1) || tmp < 3) /* min. TLV length */
+ goto trunctlv;
+ lan_alen = *tptr++; /* LAN adress length */
+ tmp --;
+diff --exclude='*~' -Naur tcpdump-3.8.3.orig/print-ldp.c tcpdump-3.8.3/print-ldp.c
+--- tcpdump-3.8.3.orig/print-ldp.c 2005-05-06 17:41:55.000000000 -0300
++++ tcpdump-3.8.3/print-ldp.c 2005-05-06 17:49:09.000000000 -0300
+@@ -326,6 +326,9 @@
+ EXTRACT_32BITS(&ldp_msg_header->id),
+ LDP_MASK_U_BIT(EXTRACT_16BITS(&ldp_msg_header->type)) ? "continue processing" : "ignore");
+
++ if (msg_len == 0) /* infinite loop protection */
++ break;
++
+ msg_tptr=tptr+sizeof(struct ldp_msg_header);
+ msg_tlen=msg_len-sizeof(struct ldp_msg_header)+4; /* Type & Length fields not included */
+
+diff --exclude='*~' -Naur tcpdump-3.8.3.orig/print-rsvp.c tcpdump-3.8.3/print-rsvp.c
+--- tcpdump-3.8.3.orig/print-rsvp.c 2005-05-06 17:41:55.000000000 -0300
++++ tcpdump-3.8.3/print-rsvp.c 2005-05-06 17:51:12.000000000 -0300
+@@ -875,10 +875,17 @@
+ switch(rsvp_obj_ctype) {
+ case RSVP_CTYPE_IPV4:
+ while(obj_tlen >= 4 ) {
+- printf("\n\t Subobject Type: %s",
++ printf("\n\t Subobject Type: %s, length %u",
+ tok2str(rsvp_obj_xro_values,
+ "Unknown %u",
+- RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)));
++ RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)),
++ *(obj_tptr+1));
++
++ if (*(obj_tptr+1) == 0) { /* prevent infinite loops */
++ printf("\n\t ERROR: zero length ERO subtype");
++ break;
++ }
++
+ switch(RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)) {
+ case RSVP_OBJ_XRO_IPV4:
+ printf(", %s, %s/%u, Flags: [%s]",
+@@ -921,8 +928,8 @@
+ if (obj_tlen < 8)
+ return;
+ printf("\n\t Restart Time: %ums, Recovery Time: %ums",
+- EXTRACT_16BITS(obj_tptr),
+- EXTRACT_16BITS(obj_tptr+4));
++ EXTRACT_32BITS(obj_tptr),
++ EXTRACT_32BITS(obj_tptr+4));
+ obj_tlen-=8;
+ obj_tptr+=8;
+ break;
diff --git a/net-analyzer/tcpdump/tcpdump-3.8.3-r2.ebuild b/net-analyzer/tcpdump/tcpdump-3.8.3-r2.ebuild
new file mode 100644
index 000000000000..5a175e3a9bba
--- /dev/null
+++ b/net-analyzer/tcpdump/tcpdump-3.8.3-r2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-analyzer/tcpdump/tcpdump-3.8.3-r2.ebuild,v 1.1 2005/05/06 22:16:12 vanquirius Exp $
+
+inherit flag-o-matic gcc
+
+DESCRIPTION="A Tool for network monitoring and data acquisition"
+HOMEPAGE="http://www.tcpdump.org/"
+SRC_URI="mirror://sourceforge/tcpdump/${P}.tar.gz
+ http://www.tcpdump.org/release/${P}.tar.gz
+ http://www.jp.tcpdump.org/release/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="x86 ~ppc ~sparc ~mips ~alpha ~arm ~hppa ~ia64 ~amd64 ~ppc64"
+IUSE="ssl ipv6"
+
+DEPEND="virtual/libpcap
+ ssl? ( >=dev-libs/openssl-0.9.6m )"
+
+src_unpack() {
+ unpack ${A}
+ epatch ${FILESDIR}/${PN}-3.8.3-gentoo.patch
+}
+
+src_compile() {
+ replace-flags -O[3-9] -O2
+ filter-flags -finline-functions
+
+ if [ "`gcc-major-version`" -ge "3" -a "`gcc-minor-version`" -ge "4" ]; then
+ filter-flags -funit-at-a-time
+ append-flags -fno-unit-at-a-time #48747
+ fi
+
+ econf `use_with ssl crypto` `use_enable ipv6` || die
+ make CCOPT="$CFLAGS" || die
+}
+
+src_install() {
+ dosbin tcpdump || die
+ doman tcpdump.1
+ dodoc *.awk
+ dodoc README FILES VERSION CHANGES
+}