summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Black <dragonheart@gentoo.org>2004-10-30 12:38:53 +0000
committerDaniel Black <dragonheart@gentoo.org>2004-10-30 12:38:53 +0000
commitfc9fb0610a4168d7944bc09a93106dd295377e35 (patch)
tree96d982233d2dc44b2a757c0242f161de706936be /net-dialup
parentAdded to ~ppc (Manifest recommit) (diff)
downloadgentoo-2-fc9fb0610a4168d7944bc09a93106dd295377e35.tar.gz
gentoo-2-fc9fb0610a4168d7944bc09a93106dd295377e35.tar.bz2
gentoo-2-fc9fb0610a4168d7944bc09a93106dd295377e35.zip
Added patch cbcp-dosfix.patch to fix remote DOS as per bug #69152.
Diffstat (limited to 'net-dialup')
-rw-r--r--net-dialup/ppp/ChangeLog9
-rw-r--r--net-dialup/ppp/Manifest21
-rw-r--r--net-dialup/ppp/files/2.4.2/cbcp-dosfix.patch151
-rw-r--r--net-dialup/ppp/files/digest-ppp-2.4.2-r73
-rw-r--r--net-dialup/ppp/ppp-2.4.2-r7.ebuild189
5 files changed, 363 insertions, 10 deletions
diff --git a/net-dialup/ppp/ChangeLog b/net-dialup/ppp/ChangeLog
index 3696989bce03..0c688b7001e7 100644
--- a/net-dialup/ppp/ChangeLog
+++ b/net-dialup/ppp/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-dialup/ppp
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-dialup/ppp/ChangeLog,v 1.79 2004/10/14 08:08:21 dragonheart Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-dialup/ppp/ChangeLog,v 1.80 2004/10/30 12:38:53 dragonheart Exp $
+
+*ppp-2.4.2-r7 (30 Oct 2004)
+
+ 30 Oct 2004; Daniel Black <dragonheart@gentoo.org>
+ +files/2.4.2/cbcp-dosfix.patch, +ppp-2.4.2-r7.ebuild:
+ Added patch cbcp-dosfix.patch to fix remote DOS as per bug #69152. Thanks Dan
+ Margolis <krispykringle@gentoo.org>
*ppp-2.4.2-r6 (14 Oct 2004)
diff --git a/net-dialup/ppp/Manifest b/net-dialup/ppp/Manifest
index c13f88d78d30..9e714bb06d35 100644
--- a/net-dialup/ppp/Manifest
+++ b/net-dialup/ppp/Manifest
@@ -1,14 +1,15 @@
-MD5 3f0c928a5721f56d967603b1878f648a ChangeLog 13326
+MD5 5a971d8d59f8c462d8651882eba46297 ppp-2.4.2-r6.ebuild 5404
MD5 ec2f84816306825d125d0c01bd86758d metadata.xml 163
MD5 b109af0767940076444e51dbf3275f16 ppp-2.4.1-r14.ebuild 4698
+MD5 6dfffcc29c21949afcc0907052d30944 ppp-2.4.2-r7.ebuild 5448
+MD5 3f0c928a5721f56d967603b1878f648a ChangeLog 13326
MD5 20502c85d128ae0dd4545dc3ae3eec6b ppp-2.4.2-r1.ebuild 4276
-MD5 210b3f9616a92005171f3f25c33c1638 ppp-2.4.2-r2.ebuild 4462
-MD5 5a971d8d59f8c462d8651882eba46297 ppp-2.4.2-r6.ebuild 5404
MD5 24f264eef320520caee8597fb071405b ppp-2.4.2.ebuild 3957
+MD5 210b3f9616a92005171f3f25c33c1638 ppp-2.4.2-r2.ebuild 4462
MD5 140bc2a08334d3546f43259934da603e files/chat-default 347
MD5 1a60baf88a301c6eed8472a01b3691eb files/confd.ppp0 3312
-MD5 8d2dfaf7418945cb19864167542b14c0 files/digest-ppp-2.4.2 61
MD5 4fda43c2f3f8b5b58a58e5d238991c0b files/digest-ppp-2.4.1-r14 65
+MD5 c07c26f0d600a1fde9752fa06fc4b0c3 files/digest-ppp-2.4.2-r7 194
MD5 8368eb79ad4618c3c6753801b5c4c689 files/gcc3.3-multiline.patch 1673
MD5 47bae70427ec4cb3ea1cc87ae799d0e3 files/gcc33-amd64.patch 1207
MD5 0713ffc9ae6e3ee4ef0f5c3cb752b3ea files/ip-down 285
@@ -20,26 +21,28 @@ MD5 05b7394b35a2342033b52134568bf6b8 files/poff 2723
MD5 4e62cdeb360ca0a22becbd2deb6f2dac files/pon 957
MD5 44cc662ba9aa61dd9add3ddd4c5ded57 files/pon.1 3607
MD5 eb5dfeb9b6a2c8b4b2f23df4980952e0 files/ppp-2.4.1-MSCHAPv2-fix.patch 507
-MD5 f82a3ae0dba4ce6031bbf1405071e827 files/ppp-2.4.1-r10.patch 311
MD5 c07c26f0d600a1fde9752fa06fc4b0c3 files/digest-ppp-2.4.2-r6 194
+MD5 f82a3ae0dba4ce6031bbf1405071e827 files/ppp-2.4.1-r10.patch 311
MD5 f0ad3e0c62aec1771536caf00e28b9c6 files/pppoe.html 7605
+MD5 8d2dfaf7418945cb19864167542b14c0 files/digest-ppp-2.4.2 61
MD5 8d2dfaf7418945cb19864167542b14c0 files/digest-ppp-2.4.2-r1 61
MD5 8d2dfaf7418945cb19864167542b14c0 files/digest-ppp-2.4.2-r2 61
+MD5 f7a8c95af55d9cca703c15cdf9386ad4 files/2.4.2/control_c.patch 402
MD5 1fd88dda7f4996799c69a9501d42cc23 files/2.4.2/README.mpls 530
MD5 bc88eaf56862e5ebf8f45ec5ada4bb90 files/2.4.2/cflags.patch 1857
MD5 a2eaeceee980ff6e183abfa370fc685c files/2.4.2/chat-default 353
MD5 ef28c96687409a340c6cd66e21dc58db files/2.4.2/confd.ppp0 2786
MD5 4d031363e70aa42076bf484fa8bdc9d6 files/2.4.2/ip-down 743
MD5 0fea1d14ab99bdbbbb5b6e652e105bd3 files/2.4.2/ip-up 1083
-MD5 927fc5dafad76c9c1ee7f0259e9244b7 files/2.4.2/mpls.patch.gz 3151
+MD5 8eaba18dd4e6f49c9fd2d35ab8572458 files/2.4.2/killaddr-smarter.patch.gz 2257
MD5 5d83af7b897082a0b1ecd70a2cc2a0c7 files/2.4.2/modules.ppp 268
+MD5 927fc5dafad76c9c1ee7f0259e9244b7 files/2.4.2/mpls.patch.gz 3151
MD5 ae851489b48d5c639c8c6da1fe02a5af files/2.4.2/net.ppp0 4414
MD5 fa2a5b8df496922fa2fb592115953b6b files/2.4.2/options-pppoe 53
MD5 2890b47660f967a07ac5b211850e46c5 files/2.4.2/options-pptp 238
-MD5 f0ad3e0c62aec1771536caf00e28b9c6 files/2.4.2/pppoe.html 7605
MD5 99aa8428a441ff748dc88892a8e98266 files/2.4.2/pcap.patch 728
-MD5 8eaba18dd4e6f49c9fd2d35ab8572458 files/2.4.2/killaddr-smarter.patch.gz 2257
MD5 971013ca1ccc5a25acffdb3ff9edff4e files/2.4.2/pppoatm.diff.gz 3567
+MD5 f0ad3e0c62aec1771536caf00e28b9c6 files/2.4.2/pppoe.html 7605
MD5 9d798912edc0a47727afcd7aac100957 files/2.4.2/stdopt-mppe-mppc-0.82.patch.gz 10108
MD5 bd6bee3df13537a8550d2f39131eab0d files/2.4.2/pppoatm-2.diff.gz 3489
-MD5 f7a8c95af55d9cca703c15cdf9386ad4 files/2.4.2/control_c.patch 402
+MD5 9cb72b4650f93e2ae6256c30a29e6962 files/2.4.2/cbcp-dosfix.patch 3387
diff --git a/net-dialup/ppp/files/2.4.2/cbcp-dosfix.patch b/net-dialup/ppp/files/2.4.2/cbcp-dosfix.patch
new file mode 100644
index 000000000000..bcac2ba99f5b
--- /dev/null
+++ b/net-dialup/ppp/files/2.4.2/cbcp-dosfix.patch
@@ -0,0 +1,151 @@
+--- ppp-2.4.2/pppd/cbcp.c 2004-10-28 15:14:19.231292272 -0400
++++ ppp-cvs/pppd/cbcp.c 2004-10-27 20:15:36.000000000 -0400
+@@ -33,7 +33,7 @@
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+-#define RCSID "$Id: cbcp-dosfix.patch,v 1.1 2004/10/30 12:38:53 dragonheart Exp $"
++#define RCSID "$Id: cbcp-dosfix.patch,v 1.1 2004/10/30 12:38:53 dragonheart Exp $"
+
+ #include <stdio.h>
+ #include <string.h>
+@@ -165,7 +165,8 @@
+ inp = inpacket;
+
+ if (pktlen < CBCP_MINLEN) {
+- error("CBCP packet is too small");
++ if (debug)
++ dbglog("CBCP packet is too small");
+ return;
+ }
+
+@@ -173,12 +174,11 @@
+ GETCHAR(id, inp);
+ GETSHORT(len, inp);
+
+-#if 0
+- if (len > pktlen) {
+- error("CBCP packet: invalid length");
++ if (len > pktlen || len < CBCP_MINLEN) {
++ if (debug)
++ dbglog("CBCP packet: invalid length %d", len);
+ return;
+ }
+-#endif
+
+ len -= CBCP_MINLEN;
+
+@@ -189,11 +189,12 @@
+ break;
+
+ case CBCP_RESP:
+- dbglog("CBCP_RESP received");
++ if (debug)
++ dbglog("CBCP_RESP received");
+ break;
+
+ case CBCP_ACK:
+- if (id != us->us_id)
++ if (debug && id != us->us_id)
+ dbglog("id doesn't match: expected %d recv %d",
+ us->us_id, id);
+
+@@ -312,11 +313,13 @@
+
+ address[0] = 0;
+
+- while (len) {
++ while (len >= 2) {
+ dbglog("length: %d", len);
+
+ GETCHAR(type, pckt);
+ GETCHAR(opt_len, pckt);
++ if (opt_len < 2 || opt_len > len)
++ break;
+
+ if (opt_len > 2)
+ GETCHAR(delay, pckt);
+@@ -348,6 +351,11 @@
+ }
+ len -= opt_len;
+ }
++ if (len != 0) {
++ if (debug)
++ dbglog("cbcp_recvreq: malformed packet (%d bytes left)", len);
++ return;
++ }
+
+ cbcp_resp(us);
+ }
+@@ -360,6 +368,7 @@
+ u_char buf[256];
+ u_char *bufp = buf;
+ int len = 0;
++ int slen;
+
+ cb_type = us->us_allowed & us->us_type;
+ dbglog("cbcp_resp cb_type=%d", cb_type);
+@@ -371,12 +380,17 @@
+
+ if (cb_type & ( 1 << CB_CONF_USER ) ) {
+ dbglog("cbcp_resp CONF_USER");
++ slen = strlen(us->us_number);
++ if (slen > 250) {
++ warn("callback number truncated to 250 characters");
++ slen = 250;
++ }
+ PUTCHAR(CB_CONF_USER, bufp);
+- len = 3 + 1 + strlen(us->us_number) + 1;
++ len = 3 + 1 + slen + 1;
+ PUTCHAR(len , bufp);
+ PUTCHAR(5, bufp); /* delay */
+ PUTCHAR(1, bufp);
+- BCOPY(us->us_number, bufp, strlen(us->us_number) + 1);
++ BCOPY(us->us_number, bufp, slen + 1);
+ cbcp_send(us, CBCP_RESP, buf, len);
+ return;
+ }
+@@ -438,25 +452,29 @@
+ int opt_len;
+ char address[256];
+
+- if (len) {
++ if (len >= 2) {
+ GETCHAR(type, pckt);
+ GETCHAR(opt_len, pckt);
++ if (opt_len >= 2 && opt_len <= len) {
+
+- if (opt_len > 2)
+- GETCHAR(delay, pckt);
++ if (opt_len > 2)
++ GETCHAR(delay, pckt);
+
+- if (opt_len > 4) {
+- GETCHAR(addr_type, pckt);
+- memcpy(address, pckt, opt_len - 4);
+- address[opt_len - 4] = 0;
+- if (address[0])
+- dbglog("peer will call: %s", address);
+- }
+- if (type == CB_CONF_NO)
+- return;
+- }
++ if (opt_len > 4) {
++ GETCHAR(addr_type, pckt);
++ memcpy(address, pckt, opt_len - 4);
++ address[opt_len - 4] = 0;
++ if (address[0])
++ dbglog("peer will call: %s", address);
++ }
++ if (type == CB_CONF_NO)
++ return;
+
+- cbcp_up(us);
++ cbcp_up(us);
++
++ } else if (debug)
++ dbglog("cbcp_recvack: malformed packet");
++ }
+ }
+
+ /* ok peer will do callback */
diff --git a/net-dialup/ppp/files/digest-ppp-2.4.2-r7 b/net-dialup/ppp/files/digest-ppp-2.4.2-r7
new file mode 100644
index 000000000000..47080cb9dbd6
--- /dev/null
+++ b/net-dialup/ppp/files/digest-ppp-2.4.2-r7
@@ -0,0 +1,3 @@
+MD5 362bcf218fba8afbb9afbee7471e5dac ppp-2.4.2.tar.gz 774441
+MD5 0d2679907627f68dd6a2c32d1c7dda90 ppp-2.4.2-mppe-mppc-1.1.patch.gz 12532
+MD5 9d2f3febf510c5b0cbb4dacba713a217 ppp-dhcpc.tgz 33497
diff --git a/net-dialup/ppp/ppp-2.4.2-r7.ebuild b/net-dialup/ppp/ppp-2.4.2-r7.ebuild
new file mode 100644
index 000000000000..5ad9e3b6d459
--- /dev/null
+++ b/net-dialup/ppp/ppp-2.4.2-r7.ebuild
@@ -0,0 +1,189 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-dialup/ppp/ppp-2.4.2-r7.ebuild,v 1.1 2004/10/30 12:38:53 dragonheart Exp $
+
+inherit eutils gnuconfig flag-o-matic
+
+DESCRIPTION="Point-to-point protocol - patched for PPPOE"
+HOMEPAGE="http://www.samba.org/ppp"
+SRC_URI="ftp://ftp.samba.org/pub/ppp/${P}.tar.gz
+ http://www.polbox.com/h/hs001/ppp-2.4.2-mppe-mppc-1.1.patch.gz
+ http://www.netservers.co.uk/gpl/ppp-dhcpc.tgz"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~sparc ~x86"
+IUSE="ipv6 activefilter pam atm mppe-mppc dhcp"
+
+RDEPEND="virtual/libc
+ activefilter? ( >=net-libs/libpcap-0.8.3-r1 )
+ atm? ( net-dialup/linux-atm )"
+DEPEND="${RDEPEND}
+ >=sys-apps/sed-4"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ epatch ${FILESDIR}/${PV}/cbcp-dosfix.patch || die "patch failed"
+ epatch ${FILESDIR}/${PV}/mpls.patch.gz || die "patch failed"
+ epatch ${FILESDIR}/${PV}/killaddr-smarter.patch.gz || die "patch failed"
+ epatch ${FILESDIR}/${PV}/cflags.patch || die "patch failed"
+ epatch ${FILESDIR}/${PV}/control_c.patch || die "patch failed"
+
+ use mppe-mppc && {
+ einfo "Enabling mppe-mppc support"
+ epatch ${DISTDIR}/ppp-2.4.2-mppe-mppc-1.1.patch.gz || die "patch failed"
+ }
+
+ if use atm; then
+ einfo "Enabling PPPoATM support"
+ epatch ${FILESDIR}/${PV}/pppoatm-2.diff.gz || die "patch failed"
+ sed -i -e "s/^LIBS =/LIBS = -latm/" pppd/Makefile.linux || die
+ fi
+
+ use activefilter || {
+ einfo "Disabling active-filter"
+ sed -i -e "s/^FILTER=y/#FILTER=y/" pppd/Makefile.linux || die
+ }
+
+ use pam && {
+ einfo "Enabling PAM"
+ sed -i -e "s/^#USE_PAM=y/USE_PAM=y/" pppd/Makefile.linux || die
+ }
+
+ use ipv6 && {
+ einfo "Enabling IPv6"
+ sed -i -e "s/#HAVE_INET6/HAVE_INET6/" pppd/Makefile.linux || die
+ }
+
+ einfo "Enabling CBCP"
+ sed -i 's/^#CBCP=y/CBCP=y/' pppd/Makefile.linux || die
+
+ einfo "Enabling radius"
+ sed -i -e 's/SUBDIRS := rp-pppoe/SUBDIRS := rp-pppoe radius/' pppd/plugins/Makefile.linux || die
+ sed -i -e '/^CFLAGS/s:$: -fPIC:' pppd/plugins/radius/radiusclient/lib/Makefile.in || die
+
+ use dhcp && {
+ # copy the ppp-dhcp plugin files
+ einfo "Copying ppp-dhcp plugin files..."
+ tar -xzf ${DISTDIR}/ppp-dhcpc.tgz -C ${S}/pppd/plugins/
+ sed -i -e 's/SUBDIRS := rp-pppoe/SUBDIRS := rp-pppoe dhcp/' pppd/plugins/Makefile.linux || die
+ sed -i -e "s/-O2/${CFLAGS}/" pppd/plugins/dhcp/Makefile.linux
+ }
+
+ #epatch ${FILESDIR}/${PV}/pcap.patch
+ sed -i -e "s:net/bpf.h:pcap-bpf.h:" pppd/sys-linux.c pppd/demand.c pppd/plugins/rp-pppoe/if.c
+}
+
+src_compile() {
+ export WANT_AUTOCONF=2.1
+ gnuconfig_update
+ # compile radius better than their makefile does
+ append-ldflags -Wl,-z,now
+ (cd pppd/plugins/radius/radiusclient && econf && emake) || die
+ ./configure --prefix=/usr || die
+ emake COPTS="${CFLAGS}" || die
+}
+
+src_install() {
+ local y
+ for y in chat pppd pppdump pppstats
+ do
+ doman ${y}/${y}.8
+ dosbin ${y}/${y}
+ done
+ chmod u+s-w ${D}/usr/sbin/pppd
+
+ dodir /etc/ppp/peers
+ insinto /etc/ppp
+ insopts -m0600
+ newins etc.ppp/pap-secrets pap-secrets.example
+ newins etc.ppp/chap-secrets chap-secrets.example
+
+ insopts -m0644
+ doins etc.ppp/options
+ doins ${FILESDIR}/${PV}/options-pptp
+ doins ${FILESDIR}/${PV}/options-pppoe
+ doins ${FILESDIR}/${PV}/chat-default
+
+ insopts -m0755
+ doins ${FILESDIR}/${PV}/ip-up
+ doins ${FILESDIR}/${PV}/ip-down
+
+ exeinto /etc/init.d/
+ doexe ${FILESDIR}/${PV}/net.ppp0
+
+ insinto /etc/conf.d
+ insopts -m0600
+ newins ${FILESDIR}/${PV}/confd.ppp0 net.ppp0
+
+ dolib.so pppd/plugins/minconn.so
+ dolib.so pppd/plugins/passprompt.so
+ dolib.so pppd/plugins/rp-pppoe/rp-pppoe.so
+ dolib.so pppd/plugins/radius/radius.so
+ dolib.so pppd/plugins/radius/radattr.so
+ dolib.so pppd/plugins/radius/radrealms.so
+ if use atm; then
+ dolib.so pppd/plugins/pppoatm.so
+ fi
+ if use dhcp; then
+ dolib.so pppd/plugins/dhcp/dhcpc.so
+ fi
+
+ dodir /usr/lib/pppd/$(awk -F '"' '/VERSION/ {print $2}' pppd/patchlevel.h)
+ mv ${D}/usr/lib/*.so ${D}/usr/lib/pppd/$(awk -F '"' '/VERSION/ {print $2}' pppd/patchlevel.h)
+
+ insinto /etc/modules.d
+ insopts -m0644
+ newins ${FILESDIR}/${PV}/modules.ppp ppp
+ if use mppe-mppc; then
+ echo 'alias ppp-compress-18 ppp_mppe_mppc' >> ${D}/etc/modules.d/ppp
+ fi
+
+ dodoc PLUGINS README* SETUP Changes-2.3 FAQ
+ dodoc ${FILESDIR}/${PV}/README.mpls
+ dohtml ${FILESDIR}/${PV}/pppoe.html
+
+ doman pppd/plugins/radius/pppd-radius.8
+ doman pppd/plugins/radius/pppd-radattr.8
+
+ dosbin scripts/pon
+ dosbin scripts/poff
+ dosbin scripts/plog
+ doman scripts/pon.1
+
+ # Adding misc. specialized scripts to doc dir
+ dodir /usr/share/doc/${PF}/scripts/chatchat
+ insinto /usr/share/doc/${PF}/scripts/chatchat
+ doins scripts/chatchat/*
+ insinto /usr/share/doc/${PF}/scripts
+ doins scripts/*
+
+ # install radiusclient
+ cd pppd/plugins/radius/radiusclient
+ make DESTDIR=${D} install || die
+}
+
+pkg_postinst() {
+ if ! [ -e ${ROOT}dev/.devfsd ] || [ -e ${ROOT}dev/.udev ]
+ then
+ if [ ! -e ${ROOT}dev/ppp ]; then
+ mknod ${ROOT}dev/ppp c 108 0
+ fi
+ fi
+ if [ "$ROOT" = "/" ]
+ then
+ /sbin/update-modules
+ fi
+ ewarn "To enable kernel-pppoe read html/pppoe.html in the doc-directory."
+ ewarn "Note: the library name has changed from pppoe.so to rp-pppoe.so."
+ ewarn "Pon, poff and plog scripts have been supplied for experienced users."
+ ewarn "New users or those requiring something more should have a look at"
+ ewarn "the /etc/init.d/net.ppp0 script."
+ ewarn "Users needing particular scripts (ssh,rsh,etc.)should check out the"
+ ewarn "/usr/share/doc/ppp*/scripts directory."
+
+ # lib name has changed
+ sed -i -e "s:^pppoe.so:rp-pppoe.so:" ${ROOT}etc/ppp/options
+}