$Id: ChangeLog,v 1.21 2004/08/10 01:01:06 lukem Exp $ Tue Aug 10 00:59:10 UTC 2004 lukem * Tagged as "tnftpd-20040810". * Updated version to "tnftpd 20040810" Tue Aug 10 00:48:58 UTC 2004 lukem * BSD/OS 3.0 portability fixes from Jeremy C. Reed: * Use _POSIX_LOGIN_NAME_MAX if sysconf(_SC_LOGIN_NAME_MAX) doesn't exist. * If _POSIX_LOGIN_NAME_MAX is missing, use LOGIN_NAME_MAX. * Provide definition for missing MAP_FAILED. * Provide prototype for vsnprintf() if ! HAVE_SNPRINTF. (We may need to implement separate autoconf test for this.) * Remove autoconf test and libnetbsd support for vsyslog(). * Update to NetBSD-ftpd 20040809: Fixes from (or inspired by) OpenBSD: * Fix yacc parser error recovery so that setjmp(3)/longjmp(3) is unnecessary. * Fix SIGURG handler to set an urgflag that's later tested, rather than abusing setjmp(3)/longjmp(3). * Use "volatile sig_atomic_t" as the type of variables modified by sig handlers. * Use sigaction(3) instead of signal(3) to set the signal handlers. * Only set the main SIGALRM handler once. If we need to change it, cache the old handler and restore appropriately.. * Remove a bunch of signal races by improving the signal handlers. * Fix memory leak with 'ESPV ALL'. * Correctly clamp illegal "SITE CHMOD" mode values. * Fix minor memory leak with fromname. Fixes by lukem: * Clean up the debug message in reply(); use vsnprintf(3) instead of vsyslog(3). * Rework parsing of OOB commands to _not_ use the yacc parser, since the latter isn't reentrant and the hacks to work around that are ugly. We now examine urgflag at appropriate locations and call handleoobcmd() if it's set. Since the only OOB commands we currently implement are ABOR and STAT, this isn't an issue. Fri Dec 19 22:57:50 UTC 2003 grant@NetBSD.org * Honour --sysconfdir. Thu Dec 18 00:49:31 UTC 2003 lukem * Tagged & released as "tnftpd-20031217" Wed Dec 17 01:44:40 UTC 2003 lukem * Updated version to "tnftpd 20031217". * Fix merge botch in fts_open, which was the cause of the "inbuilt ls doesn't work without -L" bug that Andrew Brown found. Specific problem highlighted by Onno van der Linden. * Fix cut & paste botch in fallback #define for LLONG_MIN. (noted by Onno). Tue Dec 16 02:13:49 UTC 2003 lukem * Document how to enable large file support on Solaris. * Use LLONG_{MIN,MAX} instead of QUAD_{MIN,MAX}, and provide fallback #defines for the former. * Rename HAVE_QUAD_SUPPORT to HAVE_WORKING_LONG_LONG. Tue Dec 16 00:42:58 UTC 2003 lukem * Updated version to "tnftpd 20031216". * Update fts_open to avoid race condition, and improve portability for LP64 platforms. Thanks to Onno van der Linden for the "heads up" on this issue. * Sync strlcpy & strlcat to NetBSD for Todd Miller's latest license and fix a potential SEGV in strlcat. * Convert the 4 clause UCB licensed code to the 3 clause license. Wed Dec 10 02:30:19 UTC 2003 lukem * tagged as "tnftpd 20031210" * import example configuration files into examples/ from NetBSD-current's src/share/examples/ftpd. * update to NetBSD-current ftpd 2003-12-10 - Move UCB-licensed code from 4-clause to 3-clause licence. Patches provided by Joel Baker in PR 22284 - Add ftpd_loginx() and ftpd_logwtmpx() and use them to hold wtmpx file open while a session. Close bin/21692 by bqt@Krille.Update.UU.SE. - Fix typos accidentally introduced in rev 1.70 as part of the large number support. (NetBSD yacc didn't barf on these, although Solaris and HP/UX's did...) - Don't declare "yylex()" static; AFAICT it shouldn't be, and it causes build problems with the output of some versions of yacc. - Use sysconf(_SC_LOGIN_NAME_MAX) to determine the length of login names, rather than assuming LOGIN_NAME_MAX. Based on patch from Garrett Wollman via David O'Brien (both at FreeBSD.org) - netbsd.org->NetBSD.org - Move Jason Downs's code from a 4-clause to a 3-clause licence by removing the advertising clause. Diffs provided in PR 22410 by Joel Baker, confirmed to the board by Jason Downs. With additional thanks to Jason Thorpe. Wed Dec 10 01:33:35 UTC 2003 lukem * replace netbsd.org with NetBSD.org as appropriate. * replace libnetbsd/fgetln.c with the better version that Christos wrote (as found in tnftp). Thu Jul 31 09:10:49 UTC 2003 lukem * work-around missing LLONG_MAX and LLONG_MIN on Darwin. Patch from Yuji Yamano Mon Mar 3 03:42:42 UTC 2003 lukem * manually apply revs 1.75-1.76 from netbsd repo: - fix typos accidentally introduced in rev 1.70 - don't declare yylex() static. * replace missing sete[gi]uid() with setres[ug]id() if the latter exists. (for HP-UX) Fri Feb 28 04:02:48 UTC 2003 lukem * replace references to `ftpd' in manual pages with `tnftpd', update the dates, and regenerate the catdoc pages. Thu Feb 27 03:15:51 UTC 2003 lukem * tagged as "tnftpd 2.0 beta3" * only use MAP_FILE if its available Wed Feb 26 14:51:51 UTC 2003 lukem * fixes from Tetsuya Isaki : - provide adhoc definition of LOGIN_NAME_MAX for slackware 8.1 - need unistd.h before fnmatch.h; tnftpd.h already did this, but configure.in did not. (for slackware 8.1) - sys/time.h needs to be before sys/resource.h on freebsd 4.3 * update to NetBSD-current 2003-02-26 - add '-L xferlogfile' - rename local copies of log{in,out,wtmp}() to have ftpd_ prefix - use LLT and STRTOLL() for parsing "larger than int" args - fix some uninitialised variables - remove dummy "" arg from .Nm in man pages Mon Feb 24 06:32:44 UTC 2003 lukem * update to NetBSD-current 2003-02-23 - maintain a cwd cache - rename login/logout/logwtmp() to have ftpd_ prefixes. - always remember the "curname", even if logging is disabled - fix help usage for PORT. - stop ftpd changing inetd's 'logname'. - Stop buffer overrun if {NGROUPS_MAX} is greater than the compile time NGROUPS_MAX - Apply DoS fix from Crist J. Clark, where port 20 was bound to for an extended period of time, locking out all other PORT connections. Sun Dec 8 13:09:20 UTC 2002 lukem * tagged as "tnftpd 2.0 beta2" * build & install as "tnftpd" (instead of "ftpd") * provide replacement for strsuftollx() * update to NetBSD-current 2002-10-08 Sat Oct 26 12:25:03 UTC 2002 lukem * tagged as "tnftpd 2.0 beta1" Sat Oct 26 03:24:45 UTC 2002 lukem * renamed release to `tnftpd' * renamed `libukem' to `libnetbsd' Wed Jun 5 12:57:46 UTC 2002 lukem * don't bother checking if is usable since we're always compiling in our own glob.c Thu May 23 02:43:41 UTC 2002 lukem * released 1.2 beta 2 * replace fnmatch(3) if FNM_CASEFOLD isn't available Sat Mar 16 01:28:28 UTC 2002 lukem * libukem/glob.c: Fix two problems in the KNR->ANSI conversion noticed by Yuji Yamano Thu Mar 14 06:02:31 UTC 2002 lukem * released 1.2 beta 1 Thu Mar 14 05:39:24 UTC 2002 lukem * libukem/snprintf.c: fix compile errors with gcc 3.x Sat Mar 1 07:10:54 UTC 2002 lukem * update to NetBSD-current 2002-03-01 User visible changes include: - enable case insensitive fnmatch(3)ing for hostname globs in ftpusers(5) - add 'denyquick' ftpd.conf(5) keyword - add 'private' ftpd.conf(5) keyword - use "advertise" in docco User visible fixes: - reject SIZE requests for ASCII files > 10KB long - fixes for mlsd/mlst standards conformance - fix passive transfers for various web browsers - various glob(3) fixes - don't log xferlog-style entries if the transfer didn't start - fix skey password challenge - don't try and use the motd directive if it's not set Thu Feb 28 01:39:06 UTC 2002 lukem * update libukem/glob.c from NetBSD's __glob13.c rev 1.22 and rev 1.23 Wed May 9 02:04:08 UTC 2001 lukem * released 1.1 Sat Apr 28 07:13:57 UTC 2001 lukem * released 1.1 beta 1 * determine if crypt() and getusershell() need declarations Wed Apr 25 06:27:08 UTC 2001 lukem * update to NetBSD-current 2001-04-25: - update copyrights - remove superfluous byte_count update in send_file_list - use own code instead of bothering with glob() to do ~ expansion in pathname; there's no need to support glob wildcards in this case when it's not expanded here in the non-~ case - As threatened, handle OOB commands from within ftpcmd.y. This involved changing the yacc syntax to be line-oriented, rather than having it run against the entire input at once, and adding a flag to struct tab, to indicate if or not it's acceptable for a command to occur OOB. Tue Apr 17 08:20:09 UTC 2001 lukem * look for * pull in for INADDRZ, IN6ADDRSZ and INT16SZ, and define if missing * don't bother trying to use if_indextoname() in ip6_sa2str() (fixes problems on MacOS X) * remove unused sverrno in warnx() and errx() Fri Apr 13 16:02:40 UTC 2001 lukem * improve test for long long support so that it's only enabled if printf supports %ll or %q and they do the right thing. use %q instead of %ll #if HAVE_PRINTF_QD * added NEWS file * support S/Key with add support for --with-skey * pull up changes made in NetBSD in ftpcmd.y revision 1.61: make checkportcmd address family independent, and correct IPv4 case. PR 12558. Sun Apr 8 03:35:55 UTC 2001 lukem * release 1.0 Thu Apr 5 14:08:25 UTC 2001 lukem * search for lockf and flock, and use the first found (in that order) to lock the pid files * pull up fix to glob.c from rev 1.21 of NetBSD's __glob13.c: - Fix sentinel for the buffer in globtilde. It was off by x 2. Noted by Theo. Thu Mar 29 16:57:17 EST 2001 lukem * release 1.0 beta 4 * merge ftpd from NetBSD-current (20010329): - don't leak globbed memory. * only look for setproctitle in -lutil if fparseln wasn't found in it * only REPLACE_FUNC(fparseln) if it wasn't found in -lutil * always compile in local glob; it's the best way to ensure that various security issues are fixed * update glob(3) to netbsd-current (20010329), adding support for GLOB_LIMIT and fixing various buffer overflows. * support --enable-builtinls (default) and --disable-builtinls Sun Mar 18 10:14:17 UTC 2001 lukem * detect if d_namlen exists in struct dirent, and use in fts_open() appropriately Sun Mar 18 08:30:01 UTC 2001 lukem * released 1.0 beta3 * use inbuilt ls source * autoconf improvements: - replace missing fts_open, strmode, user_from_uid - detect if optreset exists, and only use if it does - fix AC_MSG strings (remove comma's from the messages) * fixes to inbuilt ls: - revert part of previous - add rcsid - remove stat_flags; flags_to_string is unused (i.e, ignore -o) - conditionally support S_IFWHT - hardcode blocksize to 1K - remove support for nsec comparison in time sorting Sat Mar 17 12:02:51 UTC 2001 lukem * generate cat manpages * merge ftpd from NetBSD-current (20010317): - make sure we do not return stray " at the end of stirng, like bla"\0. From: "William C. Allen" - ensure replydirname() do not truncate the names. From: Paul Janzen - don't support t(erabyte) as a suffix in strsuftoll() #ifdef NO_LONG_LONG - Use GLOB_LIMIT. Also fix a bug where gl_offs was not initialized and could contain trash. - fix redundant declarations. - comment or delete text after CPP directives. - consistently use syslog priorities * improve detection of working glob(), including requiring GLOB_LIMIT. don't bother explicilty looking for glob.h; the test above will detect that. * update replacement glob() to support GLOB_LIMIT * look for setproctitle in -lutil as well * pull in if it exists, but still check each _PATH_xxx and define to something sane if not found; certain platforms have a lobotomised Fri Mar 16 08:27:09 EST 2001 lukem * in getusershell.c, remove __P() and const cruft * undef _PATH_FTPUSERS before defining * define _PATH_SHELLS if there's no Wed Mar 14 18:49:57 EST 2001 lukem * released 1.0 beta2 * add COPYING INSTALL README THANKS * replace missing vsyslog Sat Mar 10 09:15:46 EST 2001 lukem * replace missing getusershell * look for vfork and don't use if it doesn't exist * note tru64 doesn't have vsyslog (still to fix) * prototype getusershell et al if missing Fri Mar 9 06:27:08 EST 2001 lukem * released 1.0 beta1 * look for libutil.h (FreeBSD) as well as util.h (NetBSD) * change the way that glob(3) is checked for 4.4BSD feature compliance so that it's much more robust * add strtoll() Thu Feb 1 12:24:00 EST 2001 lukem * released 1.0 alpha