diff options
author | 2011-08-01 20:12:52 +0000 | |
---|---|---|
committer | 2011-08-01 20:12:52 +0000 | |
commit | 6276685f0481f160642b1d9a635a7568760abe81 (patch) | |
tree | b51d7b26530c0d29831408a2bb066b4e53202ebb /net-analyzer/packit | |
parent | Version bump. (diff) | |
download | gentoo-2-6276685f0481f160642b1d9a635a7568760abe81.tar.gz gentoo-2-6276685f0481f160642b1d9a635a7568760abe81.tar.bz2 gentoo-2-6276685f0481f160642b1d9a635a7568760abe81.zip |
Fix buffer overflows (bug #337851). Fix MAC address output format.
(Portage version: 2.2.0_alpha49/cvs/Linux x86_64)
Diffstat (limited to 'net-analyzer/packit')
-rw-r--r-- | net-analyzer/packit/ChangeLog | 11 | ||||
-rw-r--r-- | net-analyzer/packit/files/packit-1.0-format.patch | 43 | ||||
-rw-r--r-- | net-analyzer/packit/files/packit-1.0-overflow.patch | 58 | ||||
-rw-r--r-- | net-analyzer/packit/packit-1.0-r1.ebuild | 5 | ||||
-rw-r--r-- | net-analyzer/packit/packit-1.0-r2.ebuild | 33 |
5 files changed, 146 insertions, 4 deletions
diff --git a/net-analyzer/packit/ChangeLog b/net-analyzer/packit/ChangeLog index dc51238ed259..1cd0d935f2d7 100644 --- a/net-analyzer/packit/ChangeLog +++ b/net-analyzer/packit/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for net-analyzer/packit -# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/packit/ChangeLog,v 1.24 2010/09/15 02:01:55 jer Exp $ +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/packit/ChangeLog,v 1.25 2011/08/01 20:12:52 jer Exp $ + +*packit-1.0-r2 (01 Aug 2011) + + 01 Aug 2011; Jeroen Roovers <jer@gentoo.org> packit-1.0-r1.ebuild, + +packit-1.0-r2.ebuild, +files/packit-1.0-format.patch, + +files/packit-1.0-overflow.patch: + Fix buffer overflows (bug #337851). Fix MAC address output format. 15 Sep 2010; Jeroen Roovers <jer@gentoo.org> packit-1.0-r1.ebuild: Fix HOMEPAGE and SRC_URI. diff --git a/net-analyzer/packit/files/packit-1.0-format.patch b/net-analyzer/packit/files/packit-1.0-format.patch new file mode 100644 index 000000000000..0ad430206a47 --- /dev/null +++ b/net-analyzer/packit/files/packit-1.0-format.patch @@ -0,0 +1,43 @@ +The original objective seems to have been to apply padding, but this +is not done at all: instead, set a precision. -JeR + +--- a/src/shape_arp_hdr.c ++++ b/src/shape_arp_hdr.c +@@ -94,7 +94,7 @@ + if(format_ethernet_addr(ahdr_o.s_eaddr, s_neaddr) == 0) + fatal_error("Invalid sender ethernet address"); + +- snprintf(ahdr_o.shw_addr, 18, "%0X:%0X:%0X:%0X:%0X:%0X", ++ snprintf(ahdr_o.shw_addr, 18, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", + s_neaddr[0], s_neaddr[1], s_neaddr[2], s_neaddr[3], s_neaddr[4], s_neaddr[5]); + + if(ahdr_o.r_paddr == NULL) +@@ -139,7 +139,7 @@ + if(format_ethernet_addr(ahdr_o.r_eaddr, r_neaddr) == 0) + fatal_error("Invalid receiver ethernet address"); + +- snprintf(ahdr_o.rhw_addr, 18, "%0X:%0X:%0X:%0X:%0X:%0X", ++ snprintf(ahdr_o.rhw_addr, 18, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", + r_neaddr[0], r_neaddr[1], r_neaddr[2], r_neaddr[3], r_neaddr[4], r_neaddr[5]); + + if(libnet_build_arp( +--- a/src/shape_ethernet_hdr.c.org ++++ b/src/shape_ethernet_hdr.c +@@ -56,7 +56,7 @@ + if(format_ethernet_addr(ehdr_o.s_addr, us_addr) == 0) + fatal_error("Invalid source ethernet address"); + +- snprintf(ehdr_o.shw_addr, 18, "%0X:%0X:%0X:%0X:%0X:%0X", ++ snprintf(ehdr_o.shw_addr, 18, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", + us_addr[0], us_addr[1], us_addr[2], us_addr[3], us_addr[4], us_addr[5]); + + if(ehdr_o.d_addr == NULL && injection_type == ETHERTYPE_ARP) +@@ -71,7 +71,7 @@ + if(format_ethernet_addr(ehdr_o.d_addr, ud_addr) == 0) + fatal_error("Invalid destination ethernet address"); + +- snprintf(ehdr_o.dhw_addr, 18, "%0X:%0X:%0X:%0X:%0X:%0X", ++ snprintf(ehdr_o.dhw_addr, 18, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", + ud_addr[0], ud_addr[1], ud_addr[2], ud_addr[3], ud_addr[4], ud_addr[5]); + + if(libnet_build_ethernet( diff --git a/net-analyzer/packit/files/packit-1.0-overflow.patch b/net-analyzer/packit/files/packit-1.0-overflow.patch new file mode 100644 index 000000000000..3adf31a6bb82 --- /dev/null +++ b/net-analyzer/packit/files/packit-1.0-overflow.patch @@ -0,0 +1,58 @@ +--- a/src/utils.c ++++ b/src/utils.c +@@ -137,7 +137,7 @@ + #endif + + va_start(va, msgp); +- vsnprintf(msg, 256, msgp, va); ++ vsnprintf(msg, 255, msgp, va); + + msg_len = strlen(msg); + +--- a/src/exit.c ++++ b/src/exit.c +@@ -36,7 +36,7 @@ + while(1) + { + fprintf(stderr, "\n\nWould you like to quit? (y/n): "); +- fgets(a, 16, stdin); ++ fgets(a, 2, stdin); + + if(!strncasecmp(a, "Y", 1)) + break; +--- a/src/define_defaults.c ++++ b/src/define_defaults.c +@@ -36,7 +36,7 @@ + rand_d_port = (p_mode == M_TRACE) ? 1 : 0; + r_timeout = 1; + burst_rate = 1; +- hwaddr_p[17] = 0; ++ /* hwaddr_p[18] = 0; */ + init_type = 1; + interval_sec = 1; + interval_usec = 0; +--- a/src/inject_defs.h ++++ b/src/inject_defs.h +@@ -132,9 +132,9 @@ + u_int16_t rand_d_addr; + + u_int8_t *s_addr; /* source ethernet address string */ +- u_int8_t shw_addr[17]; ++ u_int8_t shw_addr[18]; + u_int8_t *d_addr; /* destination ethernet address string */ +- u_int8_t dhw_addr[17]; ++ u_int8_t dhw_addr[18]; + } ehdr_o; + + struct arphdr_opts +@@ -153,8 +153,8 @@ + u_int8_t *r_eaddr; /* receiver ethernet address */ + u_int16_t rand_r_eaddr; + +- u_int8_t shw_addr[17]; +- u_int8_t rhw_addr[17]; ++ u_int8_t shw_addr[18]; ++ u_int8_t rhw_addr[18]; + } ahdr_o; + + libnet_t *pkt_d; diff --git a/net-analyzer/packit/packit-1.0-r1.ebuild b/net-analyzer/packit/packit-1.0-r1.ebuild index 71b377afffb2..826bdeed0c29 100644 --- a/net-analyzer/packit/packit-1.0-r1.ebuild +++ b/net-analyzer/packit/packit-1.0-r1.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/packit/packit-1.0-r1.ebuild,v 1.4 2010/09/15 02:01:55 jer Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/packit/packit-1.0-r1.ebuild,v 1.5 2011/08/01 20:12:52 jer Exp $ inherit eutils @@ -15,6 +15,7 @@ IUSE="" DEPEND=">=net-libs/libnet-1.1.2 net-libs/libpcap" +RDEPEND="${DEPEND}" src_unpack(){ unpack ${A} diff --git a/net-analyzer/packit/packit-1.0-r2.ebuild b/net-analyzer/packit/packit-1.0-r2.ebuild new file mode 100644 index 000000000000..6a5c64d6d4f1 --- /dev/null +++ b/net-analyzer/packit/packit-1.0-r2.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/packit/packit-1.0-r2.ebuild,v 1.1 2011/08/01 20:12:52 jer Exp $ + +EAPI="4" + +inherit eutils + +DESCRIPTION="network auditing tool that allows you to monitor, manipulate, and inject customized IPv4 traffic" +HOMEPAGE="http://packetfactory.openwall.net/projects/packit/" +SRC_URI="${HOMEPAGE}downloads/${P}.tgz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="" + +DEPEND=">=net-libs/libnet-1.1.2 + net-libs/libpcap" + +src_prepare(){ + sed -i 's:net/bpf.h:pcap-bpf.h:g' "${S}"/src/{globals.h,main.h} || die + epatch \ + "${FILESDIR}"/packit-1.0-noopt.patch \ + "${FILESDIR}"/packit-1.0-nostrip.patch \ + "${FILESDIR}"/packit-1.0-overflow.patch \ + "${FILESDIR}"/packit-1.0-format.patch +} + +src_install() { + default + dodoc VERSION docs/* +} |