Subject: CVS commit: othersrc/libexec/tnftpd/src
To: None <source-changes@NetBSD.org>
From: Luke Mewburn <lukem@netbsd.org>
List: source-changes
Date: 08/09/2004 23:54:10
Module Name:	othersrc
Committed By:	lukem
Date:		Mon Aug  9 23:54:10 UTC 2004

Update of /cvsroot/othersrc/libexec/tnftpd/src
In directory ivanova.netbsd.org:/tmp/cvs-serv8283

Log Message:
Sync to NetBSD ftpd 2004-08-09.

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.

My stuff:
* 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.  (I also can't find the reference in
  RFC2228 where MIC, CONF & ENC are OOB-only commands.  Go figure.)
  I could clean up the is_oob stuff some more, but the remaining stuff
  in ftpcmd.y is harmless and it's unnecessary churn right this moment.


Vendor Tag:	TNF
Release Tags:	NetBSD-20040809
		
C othersrc/libexec/tnftpd/src/ftpd.c
U othersrc/libexec/tnftpd/src/version.h
U othersrc/libexec/tnftpd/src/logwtmp.c
U othersrc/libexec/tnftpd/src/Makefile
U othersrc/libexec/tnftpd/src/ftpusers.5
C othersrc/libexec/tnftpd/src/cmds.c
C othersrc/libexec/tnftpd/src/extern.h
C othersrc/libexec/tnftpd/src/ftpcmd.y
U othersrc/libexec/tnftpd/src/ftpd.8
U othersrc/libexec/tnftpd/src/pathnames.h
C othersrc/libexec/tnftpd/src/popen.c
U othersrc/libexec/tnftpd/src/ftpd.conf.5
C othersrc/libexec/tnftpd/src/conf.c
U othersrc/libexec/tnftpd/src/logutmp.c

6 conflicts created by this import.
Use the following command to help the merge:

	cvs checkout -jTNF:yesterday -jTNF othersrc/libexec/tnftpd/src