History log of /src/libexec/ftpd/extern.h |
Revision | | Date | Author | Comments |
1.66 |
| 17-Apr-2022 |
andvar | fix various typos in comments.
|
1.65 |
| 15-Oct-2019 |
christos | bump sizes
|
1.64 |
| 23-Jun-2018 |
gson | branches: 1.64.2; 1.64.4; No semicolon after macro do ... while (0) wrapper.
|
1.63 |
| 21-Mar-2013 |
lukem | branches: 1.63.22; 1.63.28; Convert from __attribute__(foo) to the __foo equiv in <sys/cdefs.h>
|
1.62 |
| 29-Aug-2011 |
joerg | branches: 1.62.2; 1.62.8; Use __dead
|
1.61 |
| 13-Jul-2009 |
roy | Rename internal getline() function to get_line() so it does conflict with the soon to be added getline(3) libc function.
|
1.60 |
| 15-Mar-2009 |
lukem | Fix WARNS=4 issues (const & sign mismatches, etc) Ensure various ftpd.conf values can't exceed their underlying types.
|
1.59 |
| 08-Jan-2009 |
christos | branches: 1.59.2; PR/40339: Ed Ravin: make ftpd log both the hostname and numeric address.
|
1.58 |
| 13-Sep-2008 |
lukem | Don't split large commands into multiple commands; just fail on them. This prevents CSRF-like attacks, when a web browser is used to access an ftp server. Reported by Maksymilian Arciemowicz <cxib@securityreason.com>. Fix mostly derived from OpenBSD, written by Moritz Jodeit <moritz@OpenBSD.org>
|
1.57 |
| 28-Apr-2008 |
martin | branches: 1.57.2; Remove clause 3 and 4 from TNF licenses
|
1.56 |
| 22-Jul-2007 |
lukem | branches: 1.56.10; 1.56.12; Rename HAVE_SOCKADDR_SA_LEN to HAVE_STRUCT_SOCKADDR_SA_LEN. Use defined(HAVE_foo) instead of just testing HAVE_foo.
|
1.55 |
| 01-Feb-2006 |
christos | branches: 1.55.4; 1.55.8; debug -> ftpd_debug xstrdup -> ftpd_strdup
|
1.54 |
| 24-Aug-2005 |
ginsbach | * Add recvbufsize configuration option This allows for setting the passive socket's SO_RCVBUF. Option works similarly to the current sendbufsize configuration option. * Change how recveive_data() works When reading data from the socket for passive transfers to the server, receive_data() now works very similar to send_data_with_read(). Reads from the network are now done using either the filesystem block size or the configuration option readsize chunks. * Crank version.h [Changes discussed with lukem.]
|
1.53 |
| 23-Jun-2005 |
christos | cleanup utmp and utmpx support. - make them symmetric - add a function to open the wtmp file explicitly very early in the game
|
1.52 |
| 03-Mar-2005 |
ginsbach | branches: 1.52.2; 1.52.4; 1.52.6; * Add hidesymlinks configuration option This adds a -L to all ls command arguments so that the file or directory the link references is listed rather than the link itself. This was inspired by IRIX ftpd's -S option. [Discussed with lukem some time ago.] * Crank version.h [right Luke? :-)]
|
1.51 |
| 11-Nov-2004 |
christos | Don't write trash in ut_ss; either initialize it to 0, or put in the proper information.
|
1.50 |
| 09-Aug-2004 |
lukem | 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'.
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.
|
1.49 |
| 07-Aug-2003 |
agc | branches: 1.49.2; Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22284, verified by myself.
|
1.48 |
| 30-Jun-2003 |
tacha | 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.
|
1.47 |
| 23-Feb-2003 |
lukem | rename local copies of login(), logout() and logwtmp() to ftpd_login(), ftpd_logout() and ftpd_logwtmp() respectively. (makes utmp support much easier in tnftpd).
per suggestion in mail from Mike Heffner <mheffner@vt.edu>, who forwarded patch from Michael Ranner <mranner@inode.at>.
|
1.46 |
| 19-Feb-2003 |
matt | gidlist is nolonger an array.
|
1.45 |
| 29-Nov-2002 |
lukem | - convert to using libc's strsuftoll(3) - use LLT (aka 'long long type') for all numeric class parameters - improve description of various ftpd.conf(5) options - statcmd(): print out: mmapsize readsize writesize sendbufsize sendlowat
|
1.44 |
| 30-May-2002 |
enami | Add optional mmap(2)/write(2) support for binary file transfer. The default is read(2)/write(2). Note that the sosend_loan needs some more work for better performance when a file isn't cached.
|
1.43 |
| 04-Dec-2001 |
lukem | branches: 1.43.2; Add two new ftpd.conf(5) directives: - 'denyquick'; deny a connection so tagged by ftpusers(5) after the USER command instead of the PASS command. whilst this might provide some info leakage of accounts names if you have some `real' or `chroot' users enabled and not others, it does prevent accidental entering of such passwords if you have all such users denied. This option is strongly recommended on anonymous-only servers. Functionality requested by Rob Windsor in [bin/12602] - 'private'; don't display class related information in the output of STAT. For paranoid admins.
|
1.42 |
| 13-Jul-2001 |
lukem | use __NetBSD__ instead of BSD4_4 to determine if we should automatically define HAVE_SETPROCTITLE and HAVE_SOCKADDR_SA_LEN, because certain operating systems from a vendor which claims to be the biggest unix vendor as of two months ago #define BSD4_4 and THEN REMOVE BITS OF THE 4.4BSD API!
anyway, this won't affect other systems which use lukemftpd (e.g, other 4.4BSD derived systems), because autoconf will set HAVE_SETPROCTITLE as appropriate. the point of this little code fragment is to remove the need to have -DHAVE_SETPROCTITLE ... in our libexec/ftpd/Makefile
</rant>
|
1.41 |
| 25-Apr-2001 |
lukem | crank copyrights of files changed this year remove superfluous byte_count update in send_file_list crank version
|
1.40 |
| 01-Apr-2001 |
aidan | add 'noreturn' attribute to ftp_loop, to fix a cc warning.
|
1.39 |
| 01-Apr-2001 |
aidan | 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.
|
1.38 |
| 04-Feb-2001 |
christos | fix redundant declarations.
|
1.37 |
| 18-Dec-2000 |
lukem | Features:
* Add ftpd.conf(5) directive `advertise'; change the address that is advertised to the client for PASV transfers. this may be useful in certain firewall/NAT environments.
Feature requested in [bin/9606] by Scott Presnell.
* Add -X option; syslog wu-ftpd style xferlog messages, prefixed with `xferlog: '. An example line from syslog (wrapped): Dec 16 18:50:24 odysseus ftpd[571]: xferlog: Sat Dec 16 18:50:24 2000 2 localhost 3747328 /pub/WLW2K601.EXE b _ o a lukem@ FTP 0 * c
These messages can be converted to a wu-ftpd style xferlog file suitable for parsing with third-party tools with something like: grep 'xferlog: ' /var/log/xferlog | \ sed -e 's/^.*xferlog: //' >wuxferlog
The format is the same as the wu-ftpd xferlog entries (with the leading syslog stuff), but different from the wu-ftpd syslogged xferlog entries because the latter is not as easy to convert into the standard xferlog file format.
The choice to only syslog the xferlog messages rather than append to a /var/log/xferlog file was made because the latter doesn't work to well in the situation where the logfile is rotated and compressed and a long-running ftpd still has a file-descriptor to the now nonexistant xferlog file, and the log message will then get lost.
Feature requested in [bin/11651] by Hubert Feyrer.
Fixes:
* In ftpd(8), clarify the -a and -c options.
* More clarifications in ftpd.conf(5).
* Ensure that all ftpd.conf commands set a parameter back to sane defaults if an argument of `none' or bad settings are given.
* Support the `chroot' directive for `REAL' users too (for consistency).
* For `GUEST' users, store the supplied password in pw->pw_passwd for use later in the xferlog.
* If show_chdir_messages() is given a code of -1, flush the cache of visited directories. Invoke show_chdir_messages(-1) in end_login().
* Only syslog session stats if logging is requested.
* Rename logcmd() -> logxfer(), and dolog() -> logremotehost().
* Use cprintf() instead of fprintf() where appropriate.
* Minor KNF, and make a couple of functions static that were declared static.
|
1.36 |
| 30-Nov-2000 |
lukem | - move password checking into separate valid_passwd() function, to assist in porting to other systems. - don't syslog() or setproctitle() "ACCT" lines (as per "PASS") - replace #ifdef HASSETPROCTITLE with #if HAVE_SETPROCTITLE, and set the latter #ifdef BSD4_4 - don't compile in internal `ls' #ifdef NO_INTERNAL_LS. will need Makefile support if this is to be used on NetBSD.
|
1.35 |
| 16-Nov-2000 |
lukem | - new ftpd.conf directives: maxfilesize set the maximum size of uploaded files sanenames if set, only permit uploaded filenames that contain characters from the set "-+,._A-Za-z0-9" and that don't start with `.'
- new/changed command line options: -e emailaddr define email address for %E (see below) -P dataport use dataport as the dataport (instead of ctrlport-1) -q use pid files to count users [default] -Q don't use pid files to count users -u write entries to utmp -U don't write entries to utmp [default] -w write entries to wtmp [default] -W don't write entries to wtmp
NOTE: -U used to mean `write utmp entries'. Its meaning has changed so that it's orthogonal with -q/-Q and -w/-W. This isn't considered a major problem, because using -U isn't going to enable something you don't want, but will disable something you did want (which is safer).
- new display file escape sequences: %E email address %s literal `s' if the previous %M or %N wasn't ``1''. %S literal `S' if the previous %M or %N wasn't ``1''.
- expand the description of building ~ftp/incoming to cover the appropriate ftpd.conf(5) directives (which are defaults, but it pays to explicitly explain them)
- replace strsuftoi() with strsuftoll(), which returns a long long if supported, otherwise a long
- rework the way that check_modify and check_upload are done in the yacc parser; they're merged into a common check_write() function which is called explicitly
- merge all ftpclass `flag variables' into a single bitfield-based flag element
- move various common bits of parse_conf() into a couple of macros
- clean up some comments
|
1.34 |
| 15-Nov-2000 |
lukem | changes to improve portability: * replace union sockunion {} with struct sockinet {}, and modify the code accordingly. this is possibly more portable, as it doesn't rely upon the structure alignment within the union for our own stuff. uses local su_len unless HAVE_SOCKADDR_SA_LEN is defined (set ifdef BSD4_4) (XXX: haven't tested the ipv6 stuff) * always use getaddrinfo() and getnameinfo() instead of maintaining two code paths. (lukemftpd will provide replacements for these on older systems) * use lockf() instead of open(.., O_EXLOCK) to lock the pid file * minor KNF * clean up long long support: create helper #defines and use as appropriate: #define NO_LONG_LONG ! NO_LONG_LONG ------- ------------ -------------- LLF "%ld" "%lld" LLFP(x) "%" x "ld" "%" x "lld" LLT long long long ULLF "%lu" "%llu" ULLFP(x) "%" x "lu" "%" x "llu" ULLT unsigned long unsigned long long STRTOLL(x,y,z) strtol(x,y,z) strtoll(x,y,z)
|
1.33 |
| 13-Nov-2000 |
itojun | - improve RFC2428 conformance. return 522 on unknown protocol identifier on EPRT. - clarify EPSV/EPRT/LPSV/LPRT behavior. - repair memory leak and lack of boundary check on EPRT. - make sure we do not resolve DNS on EPRT. sync with kame.
|
1.32 |
| 15-Sep-2000 |
christos | Make this compile again without -DINET6 and without get{addr,name}info(3) This ftpd now compiles and runs on NetBSD/1.4.2 with:
CPPFLAGS+= \ '-Dstrlcpy(a,b,c)=(strncpy(a,b,c),strlen(a))' \ '-Dstrlcat=strncat' \ '-Dsl_add(a,b)=(sl_add(a,b),0)'
|
1.31 |
| 23-Jul-2000 |
lukem | * make checkportcmd the default. this breaks third-party proxy ftp but prevents the ftp bounce attack, and we should be secure out of the box, not require users to tweak obscure stuff. * allow the version string reported to clients to be changed with '-V vers'. if vers is empty or `-', don't report a version. * if -r is given, permanently drop root privs * if not a REAL user (i.e, GUEST or CHROOT), and ftpd is running on a port > IPPORT_RESERVED+1, permanently drop root privs * don't bother reverting to root privs to logout of wtmp/utmp; since the file descriptor is already open this isn't necessary. * fix the binding of the port for the PORT/LPRT/EPRT connection to be the ctrl_addr.su_port-1, not hardcoded to `20' (this was broken in the ipv6 merge). if root privs have been dropped, and this would be a port < IPPORT_RESERVED, use a random port instead (which isn't RFC959 compliant but it doesn't appear that many clients care). * prevent login of a new user if privs have been dropped and already logged in as a REAL user (existing check already stops GUEST & CHROOT users). * move the port check stuff into a separate port_check() function, and use for PORT, LPRT, and EPRT checks. inspired by freebsd * minor KNF * minor man page cleanup
|
1.30 |
| 17-Jul-2000 |
lukem | * add two new ftpd.conf(5) directives: chroot specify dir to chroot to for GUEST and CHROOT users, to override -a anondir or the user's homedir. homedir specify dir to change to upon login; also used for ~ expansion and $HOME for subprocesses) both of these can take % escapes: %u (username), %d (homedir), %c (class). * fix NLST to take a pathname not a STRING, so that ~ expansion works * modify CWD to use the homedir parsed from curclass.homedir * implement format_path(dst, src), to parse src expanding % escapes (see above) into dst. * rename format_file() to display_file()
|
1.29 |
| 08-Jul-2000 |
sommerfeld | More format paranoia.
|
1.28 |
| 19-Jun-2000 |
lukem | branches: 1.28.2; various fixes suggested by Robert Elz: * implement closedataconn() and use appropriately (including in mlsd()) * only put leading space in front of MLST output (not MLSD output) * MLSD: only output pdir and cdir entries when the type fact is requested. * change error code for giving MLSD a non-directory from 550 to 501 * remove MLSx Type fact support for UNIX.* for now; it's not standardised yet. * do a check_login when MLSD and MLST are given no args * detect & complain about null facts in OPTS MLST * cache getgroups() at login instead of calling each time in fact_perm()
other mods: * implement cprintf(); as per fprintf() but increments total_bytes{,_out} * implement CPUTC(); as per putc() but increments total_bytes{,_out} * implement base64_encode() * fact_unique() display base64 encoding of dev_t and ino_t rather than hex output; should scale if size of those changes * change reply() so that a negative code acts as the initial line in a reply, code == 0 prefixes the line with 4 spaces, and code > 0 works as before. deprecate lreply(code, ) and lreply(0, ) in favour of reply(-code, ) and reply(0, ) respectively. * use cprintf() and CPUTC() appropriately (often instead of printf(), lreply(-2, ) or lreply(-1, ). now we actually account for the data sent by MLST and MLSD. * remove DEBUG support for sending MLSD output to control connection instead of data connection (my ftp client now supports MLSD :-)
|
1.27 |
| 14-Jun-2000 |
lukem | major overhaul (just before netbsd 1.5 :-):
* implement draft-ietf-ftpext-mlst-10 commands, especially MLST and MLSD. we already supported SIZE and MDTM. add the appropriate FEAT output lines.
* migrate a lot of the command code from ftpcmd.y and ftpd.c to cmds.c
* make dataconn(), feat(), lookup(), opts() and sizecmd() public
* modify struct tab so that it has a `flags' instead of `implemented' element, and remove the `hasopts' element. If flags == 1, the command is implemented. if flags == 2, the command is implemented and takes options
* add macros ISDOTDIR(x) (is x ".") and ISDOTDOTDIR(x) (is x "..")
* modify lreply() so that lreply(-2, ...) just outputs the given info without a prefix or trailing \r\n. this saves doing b = printf(); total_* += b;
* enhance statcmd(). still needs work in the LPRT status stuff.
* crank version
|
1.26 |
| 20-May-2000 |
lukem | branches: 1.26.2; convert to ANSI C as per style guide
|
1.25 |
| 05-Mar-2000 |
lukem | * don't bother with a version[] string, just use the macro as appropriate * clean some more of the GLOBAL stuff * fix unused var if -UHASSETPROCTITLE
|
1.24 |
| 13-Jan-2000 |
lukem | suppress verbose messages from CWD and post-login if the first character of the anonymous password is `-'.
|
1.23 |
| 12-Jan-2000 |
lukem | * add ftpd.conf directive `portrange class min max', which allows specification of the port range used by passive connections. based on work in [bin/9158] from Takahiro Kambe <taca@sky.yamashina.kyoto.jp> * change the way global variables are defined and extern-ed to be more consistent.
|
1.22 |
| 08-Jan-2000 |
lukem | features: * add connection limits (`limit' keyword in ftpd.conf) * move initialisation of curclass from parse_conf() to new function init_curclass() * implement count_users(), which determines the number of users in a given class. a file - /var/run/ftpd.pids-<class> - is used to store a list of pids in use (effectively an array of pid_t's), and its size is reduced as necessary. * new % modifiers in format_file: %c class %M maximum connection count %N current connection count * always end_login()s, even for refused connections
bugs fixed: * remove \n from %T output * fix some inconsistencies in the man pages * ensure that both `ftp' *and* `anonymous' are allowed in ftpusers. (this was accidently broken in a recent commit to be ``or'' not ``and'') * use MAXPATHLEN not MAXPATHLEN+1 * crank copyright date on modified files * crank version
|
1.21 |
| 12-Dec-1999 |
lukem | * change format of /etc/ftpusers lines from userglob [allow|deny] to userglob[@host] [allow|deny [classname]] where class is a userdefined classname. - if host is given it may either be a CIDR address (e.g, `1.2.3.0/24') or a hostglob (e.g, `*.foo.com'), and the remote host is matched against that. - if classname is given, use that to match entries in ftpd.conf (defaults to `guest' for `anonymous'/`ftp' logins, `chroot' for users found in /etc/ftpchroot, and `real' for everyone else.
* implement new /etc/ftpd.conf directives: classtype classname type set type of classname to GUEST, CHROOT, or REAL motd classname file file to use instead of /etc/motd rateget classname rate set rateget throttle to rate rateput classname rate set rateput throttle to rate upload classname allow/deny uploads (STOU, STOR, APPE). if denied, also acts as `modify deny'.
* implement new `SITE' commands: RATEGET as per /etc/ftpd.conf rateget, but cannot exceed that RATEPUT as per /etc/ftpd.conf rateput, but cannot exceed that
* implement format_file(), which outputs a file to the user, parsing % escapes. use to print /etc/ftpwelcome, /etc/motd, and the `display' file.
* implement strsuftoi() (from ftp(1)), which parses a number and optional suffix (for use with rateget, etc)
* don't bother seteuid(0) ; bind(...) ; seteuid(pw->pw_uid), since we don't need reserved ports (at wasn't getting them anyway).
* update & reorder copyrights
* use strlcpy() as appropriate
|
1.20 |
| 07-Dec-1999 |
lukem | * change ftpd_popen() to take char *argv[] instead of char *cmd. the string tokenisation must be performed by the caller (which is generally easy because it's almost always a static command). * change do_conversion() to return a char *argv[] instead of char *cmd. tokenisation of the command is done internally. * change retrieve() to take char *argv[] instead of char *cmd. (to take advantage of the above changes). fixes [bin/8173] * use fparseln() instead of fgetln() * store conversions in listed order (rather than reverse order) * use stringlists instead of handrolling code to manage an argv.
|
1.19 |
| 02-Jul-1999 |
itojun | branches: 1.19.4; dual-stack ftpd. run this from inetd, like: >>ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -ll
|
1.18 |
| 24-May-1999 |
ross | Define types for ILP32/LP64-harmonized %q[du] arguments.
|
1.17 |
| 18-May-1999 |
lukem | * fix a problem in retrieve() where arguments to commands weren't working (this was broken in the last commit). problem noticed by simonb@ * don't display the stderr output of the internal ls. * modify usage of lreply so that generally only one `XXX-' code per `block' is displayed; the rest of the lines have four spaces instead. i find this easier to read. * fix a couple places where byte accounting wasn't correct
|
1.16 |
| 17-May-1999 |
lukem | features/fixes: * implement xferstats. full stats are displayed for `STAT', and a summary is displayed upon exit (and syslogged). inspired by wu-ftpd. * wrap data xfers in {send,receive}_data with alarm() timeouts. this should remove the majority of the `hanging ftpd' problems that people were still seeing. inspired by wu-ftpd. * link with ../../bin/ls, so that bin/ls is not required under a chroot()ed area for `LIST' to work. based on [bin/4497] from "Soren S. Jorvang" <soren@t.dk> * migrate code from util.c into ftpd.c, so that it doesn't conflict with ls' util.c. * remove man page comment about ~ftp/bin/ls being necessary. * bump version to 7.2.0. * syslog xfer time with xfer stats. * if appropriate, syslog error message with command.
internal code stuff: * change arguments of various functions from `char *' to `const char *'. * define PLURAL(x) macro, which returns `' if x == 1, `s' otherwise. use macro appropriately * lreply(): a code of -1 means ``send line as is''. a code of 0 means ``send line with 4 space prefix''. don't print a space after the `-' for any other code. * logcmd(): add `const struct timeval *elapsed' and `const char *error' for more flexible error reporting
|
1.15 |
| 28-Dec-1998 |
lukem | * replace LOG(CMD|BYTES) macros with logcmd(), which is a cleaner solution with less code replication. use realpath() in logcmd() so that all logged filenames are sane. * support `REST STREAM' in `FEAT' reply (from draft-ietf-ftpext-mlst-05) * in 'HELP', suffix unimplemented commands with `-' instead of `*'; the former is easier to differentiate from `+'. * deprecate curdir() now that logcmd() doesn't use it. * ensure all filename buffers are at least MAXPATHLEN+1 in size. * move jmp_buf errcatch out of extern.h, removing need to #include <setjmp.h> in every file.
|
1.14 |
| 12-Sep-1998 |
kleink | Make the external declaration of `transflag' match its definition; from R. C. Dowdeswell <elric@mabelode.imrryr.org> in PR bin/6141.
|
1.13 |
| 07-Sep-1998 |
lukem | remove nack() - missed in previous work
|
1.12 |
| 07-Sep-1998 |
lukem | new features: * implement FEAT and OPTS from RFC2389. FEAT returns SIZE and MDTM. OPTS only works on NOOP (as a test). * extend format of /etc/ftpchroot similar to /etc/ftpusers; each entry can take an optional trailing `yes' or `no' which indicates if chroot should be done (defaults to `yes'). based on patches from Ty Sarna <tsarna@endicor.com> in [bin/4769]
cleanups/bugs: * reorder and reformat entries in yacc parser to match cmdtab[]. add a blank line between each rule. * add short hasopts and char *options to struct tab, to support OPTS. * deprecate upper(); use strcasecmp() instead of strcmp() * remove unnecessary for (;;) { } in yylex(); * replace copy() and sgetsave() with xstrdup() * fix a couple of `hasyyerrored = 1' that were accidently removed.
|
1.11 |
| 06-Sep-1998 |
lukem | * complete fix for `multiple replies returned for single parse error' problem; move `hasyyerrored' state flag out of yylex() so that check_{login,modify} can also set it. * check result of check_login for PORT command * set initial timeout before the "setjmp(); for(;;) yyparse()", otherwise an invalid command after login incorrectly sets the timeout to 5 minutes (rather than what was set in ftpd.conf) * replace (char *)0 with NULL * move yyerror() from ftpd.c to ftpcmd.y * remove need for -Dunix, by using the version string from ftpd.c (instead of `BSD-199506') * move all extern-ed vars into extern.h
|
1.10 |
| 27-Jul-1998 |
mycroft | const poisoning.
|
1.9 |
| 27-Jul-1998 |
mycroft | const poisoning.
|
1.8 |
| 30-Jun-1998 |
tv | Add the ability to disable passive connects in ftpd.conf (breaks RFC1123, STD3, but needed in some firewall environments).
|
1.7 |
| 11-Nov-1997 |
lukem | * change checkportcmd syntax to `checkportcmd class [off]' (as per `modify') * display current setting of checkportcmd in STAT * ensure that curclass.checkportcmd is initialised to 0 * document default setting of checkportcmd in ftpd(8) * cleanup code a bit, putting code for "checkportcmd" in alphabetical order
|
1.6 |
| 11-Nov-1997 |
mrg | add a "checkportcmd <class>" option that stops ftp bounce attacks.
|
1.5 |
| 23-Sep-1997 |
lukem | branches: 1.5.2; implement '-c confdir', which allows the specification of an alternate directory to look for the various configuration files, overriding /etc. From Matthias Scheler <tron@lyssa.owl.de> in [bin/4133]
|
1.4 |
| 18-Jun-1997 |
christos | - Pass gcc -Wall - Fix incorrect const poisoning - Fix ftpd_popen to dynamically allocate strings to avoid buffer overruns.
|
1.3 |
| 14-Jun-1997 |
lukem | * implement /etc/ftpd.conf, which adds support for the following features, controllable on a per class (which is one of: real, chroot, guest, all or none) basis: * on-the-fly execution of a command to build the file (a ``conversion''), providing support for "get dirname.tar" and the like. * displaying the contents of a file when a directory is entered for the first time. * maximum value for timeout (replaces -T). * control usage of CHMOD, DELE, MKD, RMD, UMASK; replacing -DINSECURE_GUEST. * notifying the user of the existance of a files matching a glob pattern when a directory is entered for the first time. * default value for timeout (replaces -t). * default umask (replaces -DGUEST_CMASK and -u). The conversion, display, and notify functionality was based on code by Simon Burge <simonb@telstra.com.au>. * clean up and re-order parts of the man page into subsections. * STAT displays the settings defined for the class of the current user. * bump version from 6.00 to 7.00, because of ftpd.conf. * deprecate -DGUEST_CMASK and -DINSECURE_GUEST in the Makefile, and -t, -T and -u, as ftpd.conf allows finer control of these. * add "nostderr" argument to ftpd_popen(), because you don't want the stderr stream mixing with the stdout stream during a conversion, as this can corrupt the stream.
|
1.2 |
| 11-Apr-1995 |
cgd | clean up RCS Id's and a couple of stype nits. Also, fix bug 947 (reported by Luke Mewburn, extraneous vers.c)
|
1.1 |
| 29-Jun-1994 |
deraadt | branches: 1.1.1; 4.4-lite, plus our local changes
|
1.1.1.1 |
| 29-Mar-1997 |
cjs | Lite-1 Import.
|
1.5.2.2 |
| 11-Nov-1997 |
mrg | pull up from trunk: cleanup and a fix to previous (from lukem).
|
1.5.2.1 |
| 11-Nov-1997 |
mrg | pull up from trunk: add a "checkportcmd <class>" option that stops ftp bounce attacks.
|
1.19.4.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.26.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.28.2.3 |
| 26-Aug-2004 |
jmc | Pullup rev 1.39-1.50 + patch (requested by he in ticket #158)
Update to NetBSD ftpd 20040809. Fixes SA#2004-009.
|
1.28.2.2 |
| 29-Mar-2001 |
lukem | sync ftpd to -current with the following revisions (for lukem/christos): Makefile 1.43-1.44 cmds.c 1.7-1.8, 1.10-1.12 conf.c 1.35-1.40 extern.h 1.32-1.38 ftpcmd.y 1.53-1.59 ftpd.8 1.58-1.63 ftpd.c 1.102-1.104, 1.106-1.122 ftpd.conf.5 1.12-1.15 ftpusers.5 1.8 logwtmp.c 1.16 popen.c 1.23-1.25 version.h 1.28
a quick summary of user-visible changes; - fix glob DoS by using GLOB_LIMIT - add ftpd.conf directives `advertise', `maxfilesize', `sanenames' - add flags: -P dataport, -X - wuftpd style log entries, -q/-Q - (en|dis)able pidfiles, -u/-U - (en|dis)able utmp, -w/-W - (en|dis)able wtmp
|
1.28.2.1 |
| 25-Jul-2000 |
lukem | user visible changes (besides checking the cvs log): * make checkportcmd the default * add -r; force permanent drop of root privs after login * add -V vers; change version string to vers * add -H; act as -h `hostname` * permanently drop root privs if it makes sense to do so (e.g; logging in as guest/chroot user on a port > 1024) * fix reference to draft-ietf-ftpext-mlst-11 * add ftpd.conf directives: chroot, homedir * fix base64_encode() and generation of the unique fact * crank version to 20000723
|
1.43.2.1 |
| 31-Aug-2004 |
jmc | Pullup rev 1.44-1.50 + patch (requested by he in ticket #1739)
Update to NetBSD ftpd 20040809. Fixes SA#2004-009.
|
1.49.2.1 |
| 12-Aug-2004 |
jmc | Pullup rev 1.50 (requested by lukem in ticket #757)
* 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'. * 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.
|
1.52.6.1 |
| 18-Sep-2008 |
bouyer | Pull up following revision(s) (requested by lukem in ticket #1964): libexec/ftpd/ftpd.c: revision 1.187 via patch libexec/ftpd/extern.h: revision 1.58 via patch libexec/ftpd/ftpcmd.y: revision 1.88 via patch libexec/ftpd/version.h: patch Don't split large commands into multiple commands; just fail on them. This prevents CSRF-like attacks, when a web browser is used to access an ftp server. Reported by Maksymilian Arciemowicz <cxib@securityreason.com>. Fix mostly derived from OpenBSD, written by Moritz Jodeit <moritz@OpenBSD.o= rg>
|
1.52.4.1 |
| 18-Sep-2008 |
bouyer | Pull up following revision(s) (requested by lukem in ticket #1964): libexec/ftpd/ftpd.c: revision 1.187 via patch libexec/ftpd/extern.h: revision 1.58 via patch libexec/ftpd/ftpcmd.y: revision 1.88 via patch libexec/ftpd/version.h: patch Don't split large commands into multiple commands; just fail on them. This prevents CSRF-like attacks, when a web browser is used to access an ftp server. Reported by Maksymilian Arciemowicz <cxib@securityreason.com>. Fix mostly derived from OpenBSD, written by Moritz Jodeit <moritz@OpenBSD.o= rg>
|
1.52.2.1 |
| 18-Sep-2008 |
bouyer | Pull up following revision(s) (requested by lukem in ticket #1964): libexec/ftpd/ftpd.c: revision 1.187 via patch libexec/ftpd/extern.h: revision 1.58 via patch libexec/ftpd/ftpcmd.y: revision 1.88 via patch libexec/ftpd/version.h: patch Don't split large commands into multiple commands; just fail on them. This prevents CSRF-like attacks, when a web browser is used to access an ftp server. Reported by Maksymilian Arciemowicz <cxib@securityreason.com>. Fix mostly derived from OpenBSD, written by Moritz Jodeit <moritz@OpenBSD.o= rg>
|
1.55.8.1 |
| 18-Sep-2008 |
bouyer | Pull up following revision(s) (requested by lukem in ticket #1202): libexec/ftpd/ftpd.c: revision 1.187 libexec/ftpd/extern.h: revision 1.58 libexec/ftpd/version.h: patch libexec/ftpd/ftpcmd.y: revision 1.88 Don't split large commands into multiple commands; just fail on them. This prevents CSRF-like attacks, when a web browser is used to access an ftp server. Reported by Maksymilian Arciemowicz <cxib@securityreason.com>. Fix mostly derived from OpenBSD, written by Moritz Jodeit <moritz@OpenBSD.o= rg>
|
1.55.4.1 |
| 18-Sep-2008 |
bouyer | Pull up following revision(s) (requested by lukem in ticket #1202): libexec/ftpd/ftpd.c: revision 1.187 libexec/ftpd/extern.h: revision 1.58 libexec/ftpd/version.h: patch libexec/ftpd/ftpcmd.y: revision 1.88 Don't split large commands into multiple commands; just fail on them. This prevents CSRF-like attacks, when a web browser is used to access an ftp server. Reported by Maksymilian Arciemowicz <cxib@securityreason.com>. Fix mostly derived from OpenBSD, written by Moritz Jodeit <moritz@OpenBSD.o= rg>
|
1.56.12.2 |
| 22-Jul-2007 |
lukem | Rename HAVE_SOCKADDR_SA_LEN to HAVE_STRUCT_SOCKADDR_SA_LEN. Use defined(HAVE_foo) instead of just testing HAVE_foo.
|
1.56.12.1 |
| 22-Jul-2007 |
lukem | file extern.h was added on branch matt-mips64 on 2007-07-22 05:06:46 +0000
|
1.56.10.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.57.2.1 |
| 24-Sep-2008 |
wrstuden | Merge in changes between wrstuden-revivesa-base-2 and wrstuden-revivesa-base-3.
|
1.59.2.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.62.8.1 |
| 23-Jun-2013 |
tls | resync from head
|
1.62.2.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.63.28.1 |
| 25-Jun-2018 |
pgoyette | Sync with HEAD
|
1.63.22.1 |
| 03-Oct-2023 |
martin | Pull up following revision(s) (requested by lukem in ticket #1901):
libexec/ftpd/extern.h: revision 1.65 libexec/ftpd/ftpd.c: revision 1.205
bump sizes
|
1.64.4.1 |
| 02-Oct-2023 |
martin | Pull up following revision(s) (requested by lukem in ticket #1737):
libexec/ftpd/extern.h: revision 1.65 libexec/ftpd/ftpd.c: revision 1.205
bump sizes
|
1.64.2.1 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|