diff options
author | Daniel Black <dragonheart@gentoo.org> | 2004-10-30 12:38:53 +0000 |
---|---|---|
committer | Daniel Black <dragonheart@gentoo.org> | 2004-10-30 12:38:53 +0000 |
commit | fc9fb0610a4168d7944bc09a93106dd295377e35 (patch) | |
tree | 96d982233d2dc44b2a757c0242f161de706936be /net-dialup | |
parent | Added to ~ppc (Manifest recommit) (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | net-dialup/ppp/Manifest | 21 | ||||
-rw-r--r-- | net-dialup/ppp/files/2.4.2/cbcp-dosfix.patch | 151 | ||||
-rw-r--r-- | net-dialup/ppp/files/digest-ppp-2.4.2-r7 | 3 | ||||
-rw-r--r-- | net-dialup/ppp/ppp-2.4.2-r7.ebuild | 189 |
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 +} |