diff options
author | Andrey A. Chernov <ache@FreeBSD.org> | 1997-01-30 17:00:56 +0000 |
---|---|---|
committer | Andrey A. Chernov <ache@FreeBSD.org> | 1997-01-30 17:00:56 +0000 |
commit | 624195f0764367c99cc3c640d7fcda1f86a322e4 (patch) | |
tree | 453a32509d088cc39a5467b701a4ef68bbd788da /ftp/wu-ftpd | |
parent | a2310bfff12e0a7862e86428194028429716f4cb (diff) | |
download | ports-624195f0764367c99cc3c640d7fcda1f86a322e4.tar.gz ports-624195f0764367c99cc3c640d7fcda1f86a322e4.zip |
Upgrade to Academ 2.4.2-beta-12 as recommended by AUSCERT security
advisory.
P.S. this version is much improved comparing to what we have previously,
f.e. it already contains most of our fixes.
Notes
Notes:
svn path=/head/; revision=5473
Diffstat (limited to 'ftp/wu-ftpd')
-rw-r--r-- | ftp/wu-ftpd/Makefile | 13 | ||||
-rw-r--r-- | ftp/wu-ftpd/distinfo | 2 | ||||
-rw-r--r-- | ftp/wu-ftpd/files/patch-aa | 19 | ||||
-rw-r--r-- | ftp/wu-ftpd/files/patch-ab | 138 | ||||
-rw-r--r-- | ftp/wu-ftpd/files/patch-ac | 78 | ||||
-rw-r--r-- | ftp/wu-ftpd/files/patch-ad | 580 | ||||
-rw-r--r-- | ftp/wu-ftpd/files/patch-ai | 17 | ||||
-rw-r--r-- | ftp/wu-ftpd/files/patch-al | 25 | ||||
-rw-r--r-- | ftp/wu-ftpd/files/patch-am | 44 | ||||
-rw-r--r-- | ftp/wu-ftpd/scripts/configure | 3 |
10 files changed, 262 insertions, 657 deletions
diff --git a/ftp/wu-ftpd/Makefile b/ftp/wu-ftpd/Makefile index 078be5289b1a..ba6af0c11b7c 100644 --- a/ftp/wu-ftpd/Makefile +++ b/ftp/wu-ftpd/Makefile @@ -1,17 +1,20 @@ # New ports collection makefile for: wu-ftpd -# Version required: 2.4 +# Version required: 2.4.2-beta-12 # Date created: 18 Oct 1994 # Whom: torstenb # -# $Id: Makefile,v 1.8 1996/12/01 01:23:20 obrien Exp $ +# $Id: Makefile,v 1.9 1996/12/01 01:34:11 obrien Exp $ # -DISTNAME= wu-ftpd-2.4 +DISTNAME= wu-ftpd-2.4.2-beta-12 CATEGORIES= net -MASTER_SITES= ftp://ftp.wustl.edu/packages/wuarchive-ftpd/ \ - http://wuarchive.wustl.edu/packages/wuarchive-ftpd/ +# AUSCERT recommendation +MASTER_SITES= ftp://ftp.academ.com/pub/wu-ftpd/private/ EXTRACT_SUFX= .tar.Z +do-build: + cd ${WRKSRC} && ./build fbs + MAINTAINER= torstenb@FreeBSD.org MAN1= ftpcount.1 ftpwho.1 diff --git a/ftp/wu-ftpd/distinfo b/ftp/wu-ftpd/distinfo index 1bdb395a4eed..48944170cef0 100644 --- a/ftp/wu-ftpd/distinfo +++ b/ftp/wu-ftpd/distinfo @@ -1 +1 @@ -MD5 (wu-ftpd-2.4.tar.Z) = a1780e6a1e2b18b6614028fa8f945e14 +MD5 (wu-ftpd-2.4.2-beta-12.tar.Z) = 9c9a38d9de9611f6e9a8d30582ba4b5b diff --git a/ftp/wu-ftpd/files/patch-aa b/ftp/wu-ftpd/files/patch-aa deleted file mode 100644 index e5b1455adc81..000000000000 --- a/ftp/wu-ftpd/files/patch-aa +++ /dev/null @@ -1,19 +0,0 @@ -*** src/realpath.c.orig Wed Jan 18 22:39:04 1995 ---- src/realpath.c Wed Jan 18 22:38:48 1995 -*************** -*** 42,48 **** - #endif - - char * -! realpath(char *pathname, char *result) - { - struct stat sbuf; - char curpath[MAXPATHLEN], ---- 42,48 ---- - #endif - - char * -! realpath(const char *pathname, char *result) - { - struct stat sbuf; - char curpath[MAXPATHLEN], diff --git a/ftp/wu-ftpd/files/patch-ab b/ftp/wu-ftpd/files/patch-ab index e8ea68abc559..7c29fc242065 100644 --- a/ftp/wu-ftpd/files/patch-ab +++ b/ftp/wu-ftpd/files/patch-ab @@ -1,51 +1,87 @@ ---- Makefile.orig Fri Apr 1 11:03:58 1994 -+++ Makefile Sat Nov 30 17:31:22 1996 -@@ -1,25 +1,32 @@ --BINDIR= /usr/local/bin --ETCDIR= /usr/local/etc --MANDIR= /usr/local/man -+BINDIR= ${PREFIX}/bin -+LIBEXECDIR= ${PREFIX}/libexec -+ETCDIR= ${PREFIX}/etc -+MANDIR= ${PREFIX}/man - MANEXT= 8 - - all: -+ /bin/sh build fb2 - @ echo 'Use the "build" command (shell script) to make ftpd.' - @ echo 'You can say "build help" for details on how it works.' - - install: bin/ftpd bin/ftpcount bin/ftpshut -- -mv -f ${ETCDIR}/ftpd ${ETCDIR}/ftpd-old -+ -mv -f ${LIBEXECDIR}/ftpd ${LIBEXECDIR}/ftpd-old - @echo Installing binaries. -- install -o bin -g bin -m 755 bin/ftpd ${ETCDIR}/ftpd -- install -o bin -g bin -m 755 bin/ftpshut ${BINDIR}/ftpshut -- install -o bin -g bin -m 755 bin/ftpcount ${BINDIR}/ftpcount -- install -o bin -g bin -m 755 bin/ftpwho ${BINDIR}/ftpwho -+ install -c -o bin -g bin -m 755 bin/ftpd ${LIBEXECDIR}/ftpd -+ install -c -o bin -g bin -m 755 bin/ftpshut ${BINDIR}/ftpshut -+ install -c -o bin -g bin -m 755 bin/ftpcount ${BINDIR}/ftpcount -+ install -c -o bin -g bin -m 755 bin/ftpwho ${BINDIR}/ftpwho -+ install -c -o bin -g bin -m 755 bin/ckconfig ${BINDIR}/ftpckconfig -+ @echo Installing basic configuration -+ install -c -o root -g bin -m 644 doc/examples/ftpaccess ${ETCDIR}/ftpaccess.example -+ install -c -o root -g bin -m 644 doc/examples/ftpusers ${ETCDIR}/ftpusers.example -+ install -c -o root -g bin -m 644 doc/examples/ftpconversions ${ETCDIR}/ftpconversions.example - @echo Installing manpages. -- install -o bin -g bin -m 755 doc/ftpd.8 ${MANDIR}/man8/ftpd.8 -- install -o bin -g bin -m 755 doc/ftpcount.1 ${MANDIR}/man1/ftpcount.1 -- install -o bin -g bin -m 755 doc/ftpwho.1 ${MANDIR}/man1/ftpwho.1 -- install -o bin -g bin -m 755 doc/ftpshut.8 ${MANDIR}/man8/ftpshut.8 -- install -o bin -g bin -m 755 doc/ftpaccess.5 ${MANDIR}/man5/ftpaccess.5 -- install -o bin -g bin -m 755 doc/ftphosts.5 ${MANDIR}/man5/ftphosts.5 -- install -o bin -g bin -m 755 doc/ftpconversions.5 ${MANDIR}/man5/ftpconversions.5 -- install -o bin -g bin -m 755 doc/xferlog.5 ${MANDIR}/man5/xferlog.5 -+ install -c -o bin -g bin -m 644 doc/ftpd.8 ${MANDIR}/man8/ftpd.8 -+ install -c -o bin -g bin -m 644 doc/ftpcount.1 ${MANDIR}/man1/ftpcount.1 -+ install -c -o bin -g bin -m 644 doc/ftpwho.1 ${MANDIR}/man1/ftpwho.1 -+ install -c -o bin -g bin -m 644 doc/ftpshut.8 ${MANDIR}/man8/ftpshut.8 -+ install -c -o bin -g bin -m 644 doc/ftpaccess.5 ${MANDIR}/man5/ftpaccess.5 -+ install -c -o bin -g bin -m 644 doc/ftphosts.5 ${MANDIR}/man5/ftphosts.5 -+ install -c -o bin -g bin -m 644 doc/ftpconversions.5 ${MANDIR}/man5/ftpconversions.5 -+ install -c -o bin -g bin -m 644 doc/xferlog.5 ${MANDIR}/man5/xferlog.5 +*** makefiles/Makefile.fbs.bak Thu Jan 16 19:57:40 1997 +--- makefiles/Makefile.fbs Thu Jan 30 17:06:29 1997 +*************** +*** 1,7 **** +! PREFIX= /usr/local + BINDIR= ${PREFIX}/bin + ETCDIR= ${PREFIX}/etc + MANDIR= ${PREFIX}/man + MANEXT= 8 + INSTALL= install + +--- 1,8 ---- +! PREFIX?= /usr/local + BINDIR= ${PREFIX}/bin + ETCDIR= ${PREFIX}/etc + MANDIR= ${PREFIX}/man ++ LIBEXECDIR= ${PREFIX}/libexec + MANEXT= 8 + INSTALL= install + +*************** +*** 10,41 **** + @ echo 'You can say "build help" for details on how it works.' + + install: bin/ftpd bin/ftpcount bin/ftpshut +! -mv -f ${ETCDIR}/ftpd ${ETCDIR}/ftpd-old + @echo installing binaries. +! ${INSTALL} -c -o bin -g bin -m 755 bin/ftpd ${ETCDIR}/ftpd + ${INSTALL} -c -o bin -g bin -m 755 bin/ftpshut ${BINDIR}/ftpshut + ${INSTALL} -c -o bin -g bin -m 755 bin/ftpcount ${BINDIR}/ftpcount + ${INSTALL} -c -o bin -g bin -m 755 bin/ftpwho ${BINDIR}/ftpwho + install -c -o bin -g bin -m 755 bin/ckconfig ${BINDIR}/ftpckconfig + @echo NOT Installing basic configuration +! # install -c -o root -g bin -m 755 doc/examples/ftpaccess ${ETCDIR}/ftpaccess +! # install -c -o root -g bin -m 755 doc/examples/ftpusers ${ETCDIR}/ftpusers +! # install -c -o root -g bin -m 755 doc/examples/ftpconversions ${ETCDIR}/ftpconversions + @echo installing manpages. +! ${INSTALL} -c -o bin -g bin -m 755 doc/ftpd.8 ${MANDIR}/man8/ftpd.8 +! ${INSTALL} -c -o bin -g bin -m 755 doc/ftpcount.1 ${MANDIR}/man1/ftpcount.1 +! ${INSTALL} -c -o bin -g bin -m 755 doc/ftpwho.1 ${MANDIR}/man1/ftpwho.1 +! ${INSTALL} -c -o bin -g bin -m 755 doc/ftpshut.8 ${MANDIR}/man8/ftpshut.8 +! ${INSTALL} -c -o bin -g bin -m 755 doc/ftpaccess.5 ${MANDIR}/man5/ftpaccess.5 +! ${INSTALL} -c -o bin -g bin -m 755 doc/ftphosts.5 ${MANDIR}/man5/ftphosts.5 +! ${INSTALL} -c -o bin -g bin -m 755 doc/ftpconversions.5 ${MANDIR}/man5/ftpconversions.5 +! ${INSTALL} -c -o bin -g bin -m 755 doc/xferlog.5 ${MANDIR}/man5/xferlog.5 +! @echo Compressing manpages +! gzip -f -9 ${MANDIR}/man8/ftpd.8 +! gzip -f -9 ${MANDIR}/man1/ftpcount.1 +! gzip -f -9 ${MANDIR}/man1/ftpwho.1 +! gzip -f -9 ${MANDIR}/man8/ftpshut.8 +! gzip -f -9 ${MANDIR}/man5/ftpaccess.5 +! gzip -f -9 ${MANDIR}/man5/ftphosts.5 +! gzip -f -9 ${MANDIR}/man5/ftpconversions.5 +! gzip -f -9 ${MANDIR}/man5/xferlog.5 +--- 11,42 ---- + @ echo 'You can say "build help" for details on how it works.' + + install: bin/ftpd bin/ftpcount bin/ftpshut +! -mv -f ${LIBEXECDIR}/ftpd ${LIBEXECDIR}/ftpd-old + @echo installing binaries. +! ${INSTALL} -c -o bin -g bin -m 755 bin/ftpd ${LIBEXECDIR}/ftpd + ${INSTALL} -c -o bin -g bin -m 755 bin/ftpshut ${BINDIR}/ftpshut + ${INSTALL} -c -o bin -g bin -m 755 bin/ftpcount ${BINDIR}/ftpcount + ${INSTALL} -c -o bin -g bin -m 755 bin/ftpwho ${BINDIR}/ftpwho + install -c -o bin -g bin -m 755 bin/ckconfig ${BINDIR}/ftpckconfig + @echo NOT Installing basic configuration +! install -c -o root -g bin -m 755 doc/examples/ftpaccess ${ETCDIR}/ftpaccess.example +! install -c -o root -g bin -m 755 doc/examples/ftpusers ${ETCDIR}/ftpusers.example +! install -c -o root -g bin -m 755 doc/examples/ftpconversions ${ETCDIR}/ftpconversions.example + @echo installing manpages. +! ${INSTALL} -c -o bin -g bin -m 644 doc/ftpd.8 ${MANDIR}/man8/ftpd.8 +! ${INSTALL} -c -o bin -g bin -m 644 doc/ftpcount.1 ${MANDIR}/man1/ftpcount.1 +! ${INSTALL} -c -o bin -g bin -m 644 doc/ftpwho.1 ${MANDIR}/man1/ftpwho.1 +! ${INSTALL} -c -o bin -g bin -m 644 doc/ftpshut.8 ${MANDIR}/man8/ftpshut.8 +! ${INSTALL} -c -o bin -g bin -m 644 doc/ftpaccess.5 ${MANDIR}/man5/ftpaccess.5 +! ${INSTALL} -c -o bin -g bin -m 644 doc/ftphosts.5 ${MANDIR}/man5/ftphosts.5 +! ${INSTALL} -c -o bin -g bin -m 644 doc/ftpconversions.5 ${MANDIR}/man5/ftpconversions.5 +! ${INSTALL} -c -o bin -g bin -m 644 doc/xferlog.5 ${MANDIR}/man5/xferlog.5 +! # @echo Compressing manpages +! # gzip -f -9 ${MANDIR}/man8/ftpd.8 +! # gzip -f -9 ${MANDIR}/man1/ftpcount.1 +! # gzip -f -9 ${MANDIR}/man1/ftpwho.1 +! # gzip -f -9 ${MANDIR}/man8/ftpshut.8 +! # gzip -f -9 ${MANDIR}/man5/ftpaccess.5 +! # gzip -f -9 ${MANDIR}/man5/ftphosts.5 +! # gzip -f -9 ${MANDIR}/man5/ftpconversions.5 +! # gzip -f -9 ${MANDIR}/man5/xferlog.5 diff --git a/ftp/wu-ftpd/files/patch-ac b/ftp/wu-ftpd/files/patch-ac index 971dbb40f3e6..93749a1da79a 100644 --- a/ftp/wu-ftpd/files/patch-ac +++ b/ftp/wu-ftpd/files/patch-ac @@ -1,50 +1,42 @@ -*** src/pathnames.h.orig Wed Apr 13 13:46:48 1994 ---- src/pathnames.h Sun Aug 6 21:45:38 1995 +*** src/pathnames.h.bak Mon Jan 20 06:21:45 1997 +--- src/pathnames.h Thu Jan 30 15:42:24 1997 *************** -*** 29,46 **** - * - * @(#)pathnames.h 5.2 (Berkeley) 6/1/90 */ - -! #define _PATH_FTPUSERS "/etc/ftpusers" - #define _PATH_FTPACCESS "/usr/local/etc/ftpaccess" - #define _PATH_EXECPATH "/bin/ftp-exec" -! #define _PATH_PIDNAMES "/usr/local/daemon/ftpd/ftp.pids-%s" - #define _PATH_CVT "/usr/local/etc/ftpconversions" -! #define _PATH_XFERLOG "/usr/adm/xferlog" -! #define _PATH_PRIVATE "/etc/ftpgroups" - - #ifndef _PATH_UTMP -! #define _PATH_UTMP "/etc/utmp" -! #define _PATH_WTMP "/usr/adm/wtmp" -! #define _PATH_LASTLOG "/usr/adm/lastlog" +*** 45,54 **** + #define _PATH_CVT "/etc/ftpd/ftpconversions" + #define _PATH_PRIVATE "/etc/ftpd/ftpgroups" + #else +! #define _PATH_FTPUSERS "/usr/local/lib/ftpd/ftpusers" +! #define _PATH_FTPACCESS "/usr/local/lib/ftpd/ftpaccess" +! #define _PATH_CVT "/usr/local/lib/ftpd/ftpconversions" +! #define _PATH_PRIVATE "/usr/local/lib/ftpd/ftpgroups" + #endif #endif - #define _PATH_BSHELL "/bin/sh" ---- 29,46 ---- - * - * @(#)pathnames.h 5.2 (Berkeley) 6/1/90 */ - -! #define _PATH_FTPUSERS "/usr/local/etc/ftpusers" - #define _PATH_FTPACCESS "/usr/local/etc/ftpaccess" - #define _PATH_EXECPATH "/bin/ftp-exec" -! #define _PATH_PIDNAMES "/var/run/ftp.pids-%s" - #define _PATH_CVT "/usr/local/etc/ftpconversions" -! #define _PATH_XFERLOG "/var/log/xferlog" -! #define _PATH_PRIVATE "/usr/local/etc/ftpgroups" - - #ifndef _PATH_UTMP -! #define _PATH_UTMP "/var/run/utmp" -! #define _PATH_WTMP "/var/log/wtmp" -! #define _PATH_LASTLOG "/var/log/lastlog" +--- 45,54 ---- + #define _PATH_CVT "/etc/ftpd/ftpconversions" + #define _PATH_PRIVATE "/etc/ftpd/ftpgroups" + #else +! #define _PATH_FTPUSERS "!!PREFIX!!/etc/ftpusers" +! #define _PATH_FTPACCESS "!!PREFIX!!/etc/ftpaccess" +! #define _PATH_CVT "!!PREFIX!!/etc/ftpconversions" +! #define _PATH_PRIVATE "!!PREFIX!!/etc/ftpgroups" + #endif #endif - #define _PATH_BSHELL "/bin/sh" *************** -*** 48,52 **** ---- 48,53 ---- - - #ifdef HOST_ACCESS - #define _PATH_FTPHOSTS "/usr/local/etc/ftphosts" -+ #else +*** 109,115 **** + #ifdef USE_ETC_FTPD + #define _PATH_FTPHOSTS "/etc/ftpd/ftphosts" + #else +! #define _PATH_FTPHOSTS "/usr/local/lib/ftpd/ftphosts" + #endif + #endif + #endif +--- 109,115 ---- + #ifdef USE_ETC_FTPD + #define _PATH_FTPHOSTS "/etc/ftpd/ftphosts" + #else +! #define _PATH_FTPHOSTS "!!PREFIX!!/etc/ftphosts" + #endif + #endif #endif - diff --git a/ftp/wu-ftpd/files/patch-ad b/ftp/wu-ftpd/files/patch-ad index 8a6749a4e6de..c94318c267f6 100644 --- a/ftp/wu-ftpd/files/patch-ad +++ b/ftp/wu-ftpd/files/patch-ad @@ -1,544 +1,58 @@ -*** src/ftpd.c.orig Tue Jan 7 00:27:09 1997 ---- src/ftpd.c Fri Jan 17 17:45:14 1997 -*************** -*** 139,146 **** - *freopen(const char *, const char *, FILE *); - extern int ftpd_pclose(FILE *iop), - fclose(FILE *); -! extern char *getline(), -! *realpath(char *pathname, char *result); - extern char cbuf[]; - extern off_t restart_point; - ---- 139,146 ---- - *freopen(const char *, const char *, FILE *); - extern int ftpd_pclose(FILE *iop), - fclose(FILE *); -! extern char *getline(); -! extern char *realpath(const char *pathname, char *result); - extern char cbuf[]; - extern off_t restart_point; - -*************** -*** 237,242 **** ---- 237,247 ---- - - #endif /* SETPROCTITLE */ - -+ #ifdef SKEY -+ #include <skey.h> -+ int pwok = 0; -+ #endif -+ - #ifdef KERBEROS - void init_krb(); - void end_krb(); -*************** -*** 252,257 **** ---- 257,269 ---- - char ls_short[50]; - struct aclmember *entry = NULL; - -+ void end_login(void); -+ void send_data(FILE *, FILE *, off_t); -+ void dolog(struct sockaddr_in *); -+ void dologout(int); -+ void perror_reply(int, char *); -+ -+ void - main(int argc, char **argv, char **envp) - { - int addrlen, -*************** -*** 686,691 **** ---- 698,705 ---- - * does not have a standard shell as returned by getusershell(). Disallow - * anyone mentioned in the file _PATH_FTPUSERS to allow people such as root - * and uucp to be avoided. */ -+ -+ void - user(char *name) - { - register char *cp; -*************** -*** 878,884 **** ---- 892,903 ---- - } else - acl_setfunctions(); - -+ #ifdef SKEY -+ pwok = skeyaccess(name, NULL, remotehost, remoteaddr); -+ reply(331, "%s", skey_challenge(name, pw, pwok)); -+ #else +*** src/ftpd.c.bak Mon Jan 20 08:05:11 1997 +--- src/ftpd.c Thu Jan 30 17:46:16 1997 +*************** +*** 235,246 **** + int logging = 0; + int log_commands = 0; + +- #ifdef SKEY /* H* add-on. Not as elegant as Wietse's */ +- #include "skey.h" /* logdaemon package, but does the job. */ +- struct skey skey_blk; +- char chbuff[80]; +- #endif +- + #ifdef SECUREOSF + #define SecureWare + #include <prot.h> +--- 235,240 ---- +*************** +*** 1201,1212 **** + acl_setfunctions(); + + #ifdef SKEY +! /* 0 means we found the user and the skeykeys file is open for update. */ +! if (skeychallenge (&skey_blk, name, chbuff) == 0) +! reply (331, "[%s] required for %s.", chbuff, name); +! else +! #endif reply(331, "Password required for %s.", name); -+ #endif askpasswd = 1; /* Delay before reading passwd after first failed attempt to slow down * passwd-guessing programs. */ -*************** -*** 887,892 **** ---- 906,912 ---- - } - - /* Check if a user is in the file _PATH_FTPUSERS */ -+ int - checkuser(char *name) - { - register FILE *fd; -*************** -*** 911,916 **** ---- 931,937 ---- - - /* Terminate login as previous user, if any, resetting state; used when USER - * command is given or login fails. */ -+ void - end_login(void) - { +--- 1195,1205 ---- + acl_setfunctions(); -*************** -*** 965,970 **** ---- 986,992 ---- - return 0; - } - -+ void - pass(char *passwd) - { - char *xpasswd, -*************** -*** 1007,1014 **** ---- 1029,1041 ---- - #ifdef KERBEROS - xpasswd = crypt16(passwd, salt); - #else -+ #ifdef SKEY -+ xpasswd = skey_crypt(passwd, salt, pw, pwok); -+ pwok = 0; -+ #else - xpasswd = crypt(passwd, salt); - #endif -+ #endif - - #ifdef ULTRIX_AUTH - if ((numfails = ultrix_check_pass(passwd, xpasswd)) < 0) { -*************** -*** 1095,1101 **** - (void) initgroups(pw->pw_name, pw->pw_gid); - - /* open wtmp before chroot */ -! (void) sprintf(ttyline, "ftp%d", getpid()); - logwtmp(ttyline, pw->pw_name, remotehost); - logged_in = 1; - ---- 1122,1132 ---- - (void) initgroups(pw->pw_name, pw->pw_gid); - - /* open wtmp before chroot */ -! #if (defined(BSD) && (BSD >= 199103)) -! (void) sprintf(ttyline, "ftp%ld", getpid()); -! #else -! (void) sprintf(ttyline, "ftpd%d", getpid()); -! #endif - logwtmp(ttyline, pw->pw_name, remotehost); - logged_in = 1; - -*************** -*** 1190,1197 **** - reply(230, "Guest login ok, access restrictions apply."); - #ifdef SETPROCTITLE - sprintf(proctitle, "%s: anonymous/%.*s", remotehost, -! sizeof(proctitle) - sizeof(remotehost) - -! sizeof(": anonymous/"), passwd); - setproctitle("%s", proctitle); - #endif /* SETPROCTITLE */ - if (logging) ---- 1221,1228 ---- - reply(230, "Guest login ok, access restrictions apply."); - #ifdef SETPROCTITLE - sprintf(proctitle, "%s: anonymous/%.*s", remotehost, -! (int) (sizeof(proctitle) - sizeof(remotehost) - -! sizeof(": anonymous/")), passwd); - setproctitle("%s", proctitle); - #endif /* SETPROCTITLE */ - if (logging) -*************** -*** 1235,1240 **** ---- 1266,1272 ---- - return (buf); - } - -+ void - retrieve(char *cmd, char *name) - { - FILE *fin, -*************** -*** 1403,1409 **** - if (dout == NULL) - goto done; - #ifdef HAVE_ST_BLKSIZE -! send_data(fin, dout, st.st_blksize); - #else - send_data(fin, dout, BUFSIZ); - #endif ---- 1435,1441 ---- - if (dout == NULL) - goto done; - #ifdef HAVE_ST_BLKSIZE -! send_data(fin, dout, st.st_blksize*2); - #else - send_data(fin, dout, BUFSIZ); - #endif -*************** -*** 1422,1428 **** ---- 1454,1464 ---- - for (loop = 0; namebuf[loop]; loop++) - if (isspace(namebuf[loop]) || iscntrl(namebuf[loop])) - namebuf[loop] = '_'; -+ #if (defined(BSD) && (BSD >= 199103)) -+ sprintf(msg, "%.24s %d %s %qd %s %c %s %c %c %s ftp %d %s\n", -+ #else - sprintf(msg, "%.24s %d %s %d %s %c %s %c %c %s ftp %d %s\n", -+ #endif - ctime(&curtime), - xfertime, - remotehost, -*************** -*** 1445,1450 **** ---- 1481,1487 ---- - (*closefunc) (fin); - } - -+ void - store(char *name, char *mode, int unique) - { - FILE *fout, *din; -*************** -*** 1610,1616 **** - for (loop = 0; namebuf[loop]; loop++) - if (isspace(namebuf[loop]) || iscntrl(namebuf[loop])) - namebuf[loop] = '_'; -! sprintf(msg, "%.24s %d %s %d %s %c %s %c %c %s ftp %d %s\n", - ctime(&curtime), - xfertime, - remotehost, ---- 1647,1657 ---- - for (loop = 0; namebuf[loop]; loop++) - if (isspace(namebuf[loop]) || iscntrl(namebuf[loop])) - namebuf[loop] = '_'; -! #if (defined(BSD) && (BSD >= 199103)) -! sprintf(msg, "%.24s %d %s %qd %s %c %s %c %c %s ftp %d %s\n", + #ifdef SKEY +! pwok = skeyaccess(name, NULL, remotehost, remoteaddr); +! reply(331, "%s", skey_challenge(name, pw, pwok)); ! #else -! sprintf(msg, "%.24s %d %s %d %s %c %s %c %c %s ftp %d %s\n", -! #endif - ctime(&curtime), - xfertime, - remotehost, -*************** -*** 1678,1683 **** ---- 1719,1735 ---- - if (setsockopt(s, IPPROTO_IP, IP_TOS, (char *) &on, sizeof(int)) < 0) - syslog(LOG_WARNING, "setsockopt (IP_TOS): %m"); - #endif -+ #ifdef TCP_NOPUSH -+ /* -+ * Turn off push flag to keep sender TCP from sending short packets -+ * at the boundaries of each write(). Should probably do a SO_SNDBUF -+ * to set the send buffer size as well, but that may not be desirable -+ * in heavy-load situations. -+ */ -+ on = 1; -+ if (setsockopt(s, IPPROTO_TCP, TCP_NOPUSH, (char *)&on, sizeof on) < 0) -+ syslog(LOG_WARNING, "setsockopt (TCP_NOPUSH): %m"); + reply(331, "Password required for %s.", name); + #endif - - return (fdopen(s, mode)); - bad: -*************** -*** 1699,1705 **** - file_size = size; - byte_count = 0; - if (size != (off_t) - 1) -! (void) sprintf(sizebuf, " (%ld bytes)", size); - else - (void) strcpy(sizebuf, ""); - if (pdata >= 0) { ---- 1751,1761 ---- - file_size = size; - byte_count = 0; - if (size != (off_t) - 1) -! #if (defined(BSD) && (BSD >= 199103)) -! (void) sprintf(sizebuf, " (%qd bytes)", size); -! #else -! (void) sprintf(sizebuf, " (%d bytes)", size); -! #endif - else - (void) strcpy(sizebuf, ""); - if (pdata >= 0) { -*************** -*** 1707,1715 **** - int s, - fromlen = sizeof(from); - -! s = accept(pdata, (struct sockaddr *) &from, &fromlen); -! if (s < 0) { -! reply(425, "Can't open data connection."); - (void) close(pdata); - pdata = -1; - return (NULL); ---- 1763,1785 ---- - int s, - fromlen = sizeof(from); - -! #ifdef FD_ZERO -! struct timeval timeout; -! fd_set set; -! -! FD_ZERO(&set); -! FD_SET(pdata, &set); -! -! timeout.tv_usec = 0; -! timeout.tv_sec = 120; -! -! if (select(pdata+1, &set, (fd_set *) 0, (fd_set *) 0, &timeout) == 0 || -! (s = accept(pdata, (struct sockaddr *) &from, &fromlen)) < 0) { -! #else -! s = accept(pdata, (struct sockaddr *) &from, &fromlen); -! if (s < 0) { -! #endif -! reply(425, "Can't open data connection."); - (void) close(pdata); - pdata = -1; - return (NULL); -*************** -*** 1764,1769 **** ---- 1834,1840 ---- - * encapsulation of the data subject to Mode, Structure, and Type. - * - * NB: Form isn't handled. */ -+ void - send_data(FILE *instr, FILE *outstr, off_t blksize) - { - register int c, -*************** -*** 1839,1844 **** ---- 1910,1916 ---- - * the data subject to Mode, Structure, and Type. - * - * N.B.: Form isn't handled. */ -+ int - receive_data(FILE *instr, FILE *outstr) - { - register int c; -*************** -*** 1915,1920 **** ---- 1987,1993 ---- - return (-1); - } - -+ void - statfilecmd(char *filename) - { - char line[BUFSIZ]; -*************** -*** 1948,1953 **** ---- 2021,2027 ---- - reply(211, "End of Status"); - } - -+ void - statcmd(void) - { - struct sockaddr_in *sin; -*************** -*** 2001,2006 **** ---- 2075,2081 ---- - reply(211, "End of status"); - } - -+ void - fatal(char *s) - { - reply(451, "Error in server: %s\n", s); -*************** -*** 2095,2100 **** ---- 2170,2176 ---- - - #else - /* VARARGS2 */ -+ void - reply(int n, char *fmt, int p0, int p1, int p2, int p3, int p4, int p5) - { - if (autospout != NULL) { -*************** -*** 2129,2134 **** ---- 2205,2211 ---- - } - - /* VARARGS2 */ -+ void - lreply(int n, char *fmt, int p0, int p1, int p2, int p3, int p4, int p5) - { - if (!dolreplies) + askpasswd = 1; + /* Delay before reading passwd after first failed attempt to slow down + * passwd-guessing programs. */ *************** -*** 2144,2160 **** ---- 2221,2240 ---- - } +*** 1378,1389 **** + xpasswd = crypt(passwd, salt); #endif - -+ void - ack(char *s) - { - reply(250, "%s command successful.", s); - } - -+ void - nack(char *s) - { - reply(502, "%s command not implemented.", s); - } - - /* ARGSUSED */ -+ void - yyerror(char *s) - { - char *cp; -*************** -*** 2164,2169 **** ---- 2244,2250 ---- - reply(500, "'%s': command not understood.", cbuf); - } - -+ void - delete(char *name) - { - struct stat st; -*************** -*** 2208,2213 **** ---- 2289,2295 ---- - ack("DELE"); - } - -+ void - cwd(char *path) - { - struct aclmember *entry = NULL; -*************** -*** 2248,2253 **** ---- 2330,2336 ---- - } - } - -+ void - makedir(char *name) - { - uid_t uid; -*************** -*** 2274,2282 **** - reply(257, "MKD command successful."); - } - - removedir(char *name) - { -! int c, d; /* dummy variables */ - int valid = 0; - - /* ---- 2357,2366 ---- - reply(257, "MKD command successful."); - } - -+ void - removedir(char *name) - { -! unsigned long c, d; /* dummy variables */ - int valid = 0; - - /* -*************** -*** 2298,2303 **** ---- 2382,2388 ---- - ack("RMD"); - } - -+ void - pwd(void) - { - char path[MAXPATHLEN + 1]; -*************** -*** 2312,2318 **** - #else - if (getwd(path) == (char *) NULL) #endif -! reply(550, "%s.", path); - else - reply(257, "\"%s\" is current directory.", path); - } ---- 2397,2404 ---- - #else - if (getwd(path) == (char *) NULL) +- #endif +- #ifdef SKEY +- /* comment the next line if you REALLY want to allow replayable passwds. */ +- strcpy (xpasswd, "wrongo:spazmoid"); /* disable regular passwds */ +- if (skeyverify (&skey_blk, passwd) == 0) +- strcpy (xpasswd, pw->pw_passwd); /* do it the sleazy way */ #endif -! /* reply(550, "%s.", path); */ -! reply(550, "Permission denied."); - else - reply(257, "\"%s\" is current directory.", path); - } -*************** -*** 2342,2347 **** ---- 2428,2434 ---- - return (name); - } - -+ void - renamecmd(char *from, char *to) - { - -*************** -*** 2357,2362 **** ---- 2444,2450 ---- - ack("RNTO"); - } - -+ void - dolog(struct sockaddr_in *sin) - { - struct hostent *hp; -*************** -*** 2412,2417 **** ---- 2500,2506 ---- - } - - /* Record logout in wtmp file and exit with supplied status. */ -+ void - dologout(int status) - { - /* -*************** -*** 2466,2471 **** ---- 2555,2561 ---- - * PASV command in RFC959. However, it has been blessed as a legitimate - * response by Jon Postel in a telephone conversation with Rick Adams on 25 - * Jan 89. */ -+ void - passive(void) - { - int len; -*************** -*** 2537,2542 **** ---- 2627,2633 ---- - } - - /* Format and send reply containing system error number. */ -+ void - perror_reply(int code, char *string) - { - reply(code, "%s: %s.", string, strerror(errno)); -*************** -*** 2545,2550 **** ---- 2636,2642 ---- - static char *onefile[] = - {"", 0}; - -+ void - send_file_list(char *whichfiles) - { - struct stat st; + #ifdef ULTRIX_AUTH + if ((numfails = ultrix_check_pass(passwd, xpasswd)) < 0) { +--- 1371,1376 ---- diff --git a/ftp/wu-ftpd/files/patch-ai b/ftp/wu-ftpd/files/patch-ai index 67cb35730961..8397aba1d9d2 100644 --- a/ftp/wu-ftpd/files/patch-ai +++ b/ftp/wu-ftpd/files/patch-ai @@ -1,5 +1,5 @@ -*** config.h Fri Apr 1 11:03:59 1994 ---- config.h Sat Oct 7 10:09:48 1995 +*** config.h.orig Mon Jan 20 06:21:30 1997 +--- config.h Thu Jan 30 16:13:31 1997 *************** *** 30,35 **** --- 30,43 ---- @@ -17,3 +17,16 @@ * allow use of private file. (for site group and site gpass) */ +*************** +*** 64,68 **** + * See README-2.4-HOBBIT for more information on this option. + */ + +! #undef SKEY + +--- 72,76 ---- + * See README-2.4-HOBBIT for more information on this option. + */ + +! #define SKEY + diff --git a/ftp/wu-ftpd/files/patch-al b/ftp/wu-ftpd/files/patch-al new file mode 100644 index 000000000000..91414fc3ef3e --- /dev/null +++ b/ftp/wu-ftpd/files/patch-al @@ -0,0 +1,25 @@ +*** support/makefiles/Makefile.fbs.bak Fri Feb 17 20:36:56 1995 +--- support/makefiles/Makefile.fbs Thu Jan 30 16:32:32 1997 +*************** +*** 4,13 **** + LIBC = /usr/lib/libc.a + IFLAGS = + LFLAGS = +! CFLAGS = -O ${IFLAGS} ${LFLAGS} -DNO_MALLOC_PROTO + +! SRCS = fnmatch.c strcasestr.c authuser.c ftw.c +! OBJS = fnmatch.o strcasestr.o authuser.o ftw.o + + all: $(OBJS) + -rm -f libsupport.a +--- 4,13 ---- + LIBC = /usr/lib/libc.a + IFLAGS = + LFLAGS = +! CFLAGS += ${IFLAGS} ${LFLAGS} -DNO_MALLOC_PROTO + +! SRCS = strcasestr.c authuser.c ftw.c +! OBJS = strcasestr.o authuser.o ftw.o + + all: $(OBJS) + -rm -f libsupport.a diff --git a/ftp/wu-ftpd/files/patch-am b/ftp/wu-ftpd/files/patch-am new file mode 100644 index 000000000000..54655a677dee --- /dev/null +++ b/ftp/wu-ftpd/files/patch-am @@ -0,0 +1,44 @@ +*** src/makefiles/Makefile.fbs.orig Thu Jan 16 11:27:58 1997 +--- src/makefiles/Makefile.fbs Thu Jan 30 17:50:47 1997 +*************** +*** 1,8 **** + CC = cc + IFLAGS = -I.. -I../support + LFLAGS = -L../support -s +! CFLAGS = -O ${IFLAGS} ${LFLAGS} +! LIBES = -lsupport -lcrypt + LIBC = /usr/lib/libc.a + LINTFLAGS= + LKERB = -lauth -lckrb -lkrb -ldes +--- 1,8 ---- + CC = cc + IFLAGS = -I.. -I../support + LFLAGS = -L../support -s +! CFLAGS += ${IFLAGS} ${LFLAGS} +! LIBES = -lsupport -lutil -lskey -lmd -lcrypt + LIBC = /usr/lib/libc.a + LINTFLAGS= + LKERB = -lauth -lckrb -lkrb -ldes +*************** +*** 10,19 **** + + SRCS = ftpd.c ftpcmd.c glob.c logwtmp.c popen.c vers.c access.c extensions.c \ + realpath.c acl.c private.c authenticate.c conversions.c hostacc.c \ +! sigfix.c + OBJS = ftpd.o ftpcmd.o glob.o logwtmp.o popen.o vers.o access.o extensions.o \ + realpath.o acl.o private.o authenticate.o conversions.o hostacc.o \ +! sigfix.o + + all: ftpd ftpcount ftpshut ckconfig + +--- 10,19 ---- + + SRCS = ftpd.c ftpcmd.c glob.c logwtmp.c popen.c vers.c access.c extensions.c \ + realpath.c acl.c private.c authenticate.c conversions.c hostacc.c \ +! sigfix.c skey-stuff.c + OBJS = ftpd.o ftpcmd.o glob.o logwtmp.o popen.o vers.o access.o extensions.o \ + realpath.o acl.o private.o authenticate.o conversions.o hostacc.o \ +! sigfix.o skey-stuff.o + + all: ftpd ftpcount ftpshut ckconfig + diff --git a/ftp/wu-ftpd/scripts/configure b/ftp/wu-ftpd/scripts/configure index e557ecd38d08..1d1fc078cfef 100644 --- a/ftp/wu-ftpd/scripts/configure +++ b/ftp/wu-ftpd/scripts/configure @@ -6,7 +6,4 @@ mv ${WRKSRC}/src/pathnames.h ${WRKSRC}/src/pathnames.h.bak sed <${WRKSRC}/src/pathnames.h.bak >${WRKSRC}/src/pathnames.h s+!!PREFIX!!+$PREFIX+g -cp ${FILESDIR}/Makefile.fb2 ${WRKSRC}/src/makefiles/Makefile.fb2 -cp ${FILESDIR}/config.fb2 ${WRKSRC}/src/config/config.fb2 -cp ${FILESDIR}/support-Makefile.fb2 ${WRKSRC}/support/makefiles/Makefile.fb2 cp ${FILESDIR}/skey-stuff.c ${WRKSRC}/src/skey-stuff.c |