📄 changelog
字号:
0.0.1 initial versioned tarball released----------------------------------------- Added "-ldl" to LIBS to get linking to work on RedHat6.1- Add RedHat6.1 on list of tested platforms :)0.0.2 packaged--------------- Emit version in greeting string- In PORT command, reject numbers <0 or >255. Problem noted by Solar Designer, <solar@openwall.com>- Allow an option AND a path for LIST/NLST, e.g. "LIST -al /pub". Reported byBill Nottingham <notting@redhat.com>, using ncftp. Further noted by ColinHogben <chah@jet.uk> using emacs and James Antill <james@and.org>.- Don't prepend directory path for LIST (but still so for NLST). Noted byColin Hogben <chah@jet.uk> and Ingo Luetkebohle <ingo@blank.pages.de>- Fix problem listing non-existant or unreadable directories - just returna blank listing rather than an error. Problem noted by Martin Sillence<martin.sillence@prnewswire.co.uk>, using squid.- Fix KDE's downloads (via KFM), it was using the "SIZE" command which I hadnot implemented. Reported by Simon Dales <simonD@nuffield.co.uk> and Jo Dillon<jo@trolltech.com>. Apparently implementing SIZE also fixed lftp's downloadtime estimator, reported by Ingo Luetkebohle <ingo@blank.pages.de>- Remove abornal_exit() from utility.c- Fix so we don't write "500 OOPS: child died" upon QUIT. Reported by SolarDesigner, <solar@openwall.com> and Tim Bagot <tsb@earth.li>0.0.3 packaged--------------- Oops: fix so we don't emit a status 150 mark unless we actually got aconnection from the client (stops some clients hanging trying to list aninaccessible directory)0.0.4 packaged--------------- In verbose directory listing, report symlink targets. Use the traditionalsyntax of: "link_name -> target_path"- Damn netscape! The comma in the response text to PASV confused it, so ithad to be removed. Discovered with tcpdump!- Don't require clients to redo PORT or PASV if a RETR or STOR fails dueto inability to open/create file. Fixes Netscape symlink navigation problem.- Fix for listing absolute paths with only one /, e.g. "ls /.message" wasfailing0.0.5 packaged--------------- Remove README.ftpproto- Add SECURITY/OVERVIEW- Add SECURITY/DESIGN- Note that as a security tweak, we should lose more privs if we're configuredfor anonymous only logins (TODO)- Add SECURITY/IMPLEMENTATION, SECURITY/TRUST, but nothing in them yet.- Convert str.c to vsf_sysutil_*. This leaves the following to do: checkauth.c, main.c, postprivparent.c, privparent.c, privsock.c, utility.c- Convert privparent.c to vsf_sysutil_*.- Create BUGS and move existing listed bugs from TODO into this new file- Add parseconf.h, parseconf.c to handle parsing of a config file (work inprogress)- Fix change_full_credentials() in utility.c, to always chdir() even if weare not going to do a chroot()- Rename get_random_byte() to vsf_sysutil_get_random_byte(), and move fromutility.c to sysutil.c- Create new file secutil.c, move change_full_credentials() to it and rename- Convert utility.c to vsf_sysutil_*.- handle_local_login(): don't look up username; common_do_login() does it- implement different tunable umask() values for local/anonymous users- implement SITE UMASK- implement SITE CHMOD- whoops! allow non-anonymous users to overwrite files with STOR0.0.6 packaged--------------- SECURITY: when in anonymous-only mode, reject usernames that aren't theanonymous usernames. This is hoping some FTP clients will be stopped fromsending a cleartext password. Idea from Gerald Teschl <gt@esi.ac.at>.- Decided to put "telnet strings" on the back burner :)- Sprinkling of static in main.c- Complete parseconf.c config file parsing and plug it into main.c- Convert main.c to vsf_sysutil_*. This leaves checkauth.c, postprivparent.c and privsock.c- Now we have runtime config, make compiled in defaults extra paranoid- Implement "tunable_anon_world_readable_only" to only serve publiclyreadable files anonymously- Add sample "vsftpd.conf"- Eww - missing "return" in parseconf.c- Move ASCII mode transfers out of critical section in TODO- parseconf.c: if an integer starts with "0", treat it as octal- Ban "SITE CHMOD" if !tunable_write_enable- Wrote SECURITY/TRUST- Wrote SECURITY/IMPLEMENTATION, probably more to come- Update INSTALL- Add "tunable_nopriv_user"- Update parseconf.c with the two latest new config variables- Add sysdeputil.h, sysdeputil.c for system specific facilities, i.e.capabilites, authentication.- Lose checkauth.c,h - they moved into sysdeputil.c,h- Lose config.h - it moved into sysdeputil.c- Convert postprivparent.c to vsf_sysutil_* (leaves privsock.c)- Convert privsock.c to vsf_sysutil_*. All done, yay!! :)- D'oh! Missing "!" in postlogin.c refused to server publicly readable files:)- Fix chown() of uploaded files (broken initialization order in main())- Add SPEED, and fill it with wild speculation- Rename distribution directory "vsftpd-x.x.x" (note the added "d")0.0.7 packaged--------------- Build with -O2- Fix "uninitialized" warnings -O2 exposed - the one in capabilities setupcould be nasty!- Nail warning in vsf_sysutil_sendfile(). We're now "-Wall warning free"- Build with -Werror to signal intent to _stay_ warning free- A few int -> long in the area of file sizes and offsets- Remove comma's at end of enum lists (-pedantic caught it)- Impact from fixing warnings caused by -pedantic- Date format %e -> %d in date display, %e isn't everywhere- Paranoia in vsf_sysutil_malloc()- Clean up interface to substring searching in str.c- Cleanups in str.c- Squash most "unsigned<->signed" conversions exposed by -Wconversion- Lose "-g" to CFLAGS; after all we're bug-free now ;-)- Add "AUDIT"- Fix up a bunch of potential 64-bit issues (maybe >2Gb files will work on64-bit platforms now, no way to test)- Implement PR_SET_KEEPCAPS support for 2.2.18+ and 2.4.0+ kernels- In sysdeputil.c, change NULL -> 0 to help Solaris build problem- Repair vsf_sysutil_sendfile() and the caller- Logging: log the username- Logging: don't log "//" as start of filenames under certain conditions- Logging: log the date. Logging is almost useful now!- Logging: log MKD commands too; they are used in anon ftp a fair bit- Take the trouble to look into partial reads/writes. Looks like we are safe.- vsf_sysutil_read and vsf_sysutil_write now hide EINTR and retry- Replace some vsf_sysutil_{read,write} usage withvsf_sysutil_{read,write)_loop which handles partial reads and writes- Implement a sendfile() replacement for systems which lack it- Implement runtime checking for system specific Linux stuff, i.e.prctl(PR_SET_KEEPCAPS). This is inspired by RedHat7.0 headers claiming tobe a 2.4.0 kernel, but actually you are running on 2.2.x! :-(- Strip the build executable at link time0.0.8 packaged--------------- A few incorrect sizeof()'s in postlogin.c, thanks to Antonomasia<ant@notatla.demon.co.uk> for noting these.- Decide that ASCII support isn't too important for now (waiting for users todemand it). Also decide that ABOR is a must :( Thanks to Zach Brown<zab@zabbo.net> for the discussion.- More TODO items thanks to Stephen White <swhite@ox.compsoc.net> - 2.0.xissues.- Provide a definition for SHUT_RDWR in sysutil.c, not all systems have thatdefinition yet. Thanks Stephen White <swhite@ox.compsoc.net>.- Tidy privparent.c- Decide ASCII _is_ quite important, thanks Solar ;-)- Bit of extra paranoia in sysutil.c: don't call mem*() if size == 0- Tidy str.c- Command line: if vsftpd has an argument, it is a path to a config file.- Set TCP_NODELAY on command stream- Don't lseek() for RETR in common case with REST set to 0- Correct error code for transfer after succesful connection (425 -> 426)- ABOR support. Bah.- APPE support (why not, it was trivial). Putting off ASCII support ;-)- Add ASCII transfer support. Bah.- Tidy up sysutil.c, fix breakage in read_loop and write_loop.0.0.9 packaged--------------- Remove ".message" from distribution. Thanks Mitchell Blank Jr<mitch@sfgoth.com>- Note where I can get some load testing software, thanks to Dan Kegel<dank@alumni.caltech.edu>. I'll do that soon because I hope to waste wu-ftpd.- Fix an Alpha build warning and check return value from final pam_end().Reported by Solar Designer <solar@openwall.com>.- Add xinetd.d/vsftpd, from Kurt Seifried <listuser@seifried.org>.- Integrate comments/fixes into SECURITY documentation, thanks to Antonomasia<ant@notatla.demon.co.uk>- SECURITY: default tunable_chroot_local_user to 0, because it is dangerous togive users write access to the filesystem root (think of opening trustedfiles relative to the root). Thanks again Solar Designer<solar@openwall.com>.- Add "make install" target. Currently it is minimal!- Clearer error message if vsftpd is started manually. Suggestion fromTom <tom@lemuria.org>.- Report futuristic or old (>6 months) dates in a different format, showingthe year like /bin/ls does.- Add KERNEL-2.4.0-WARNING. Whoo-hoo. Why do all my non-trivial programs seemto trigger kernel bugs?- SECURITY: refuse to allow anonymous logins if some bonehead has configuredthe anonymous ftp user with write access to the ftp root.- Fix ASCII downloads so that \n UNCONDITIONALLY maps to \r\n. This behaviouris now consistent with wu-ftpd and results in simpler code.- Fix ASCII uploads to not to fail to strip some \r characters. Noted byMitchell Blank Jr <mitch@sfgoth.com>.- Add TODO items: log transfer rate and anonymous password. Andrew Anderson<andrew@redhat.com>.0.0.10 packaged---------------- Remove errant #include <sys/sendfile.h> from sysutil.c. Noted by Jan-FrodeMyklebust <janfrode@parallab.uib.no>- Use gettimeofday(2) not time(2), for better resolution.- Add transfer rate to the log- Add <limits.h> to sysutil.c, spotted by Kevin Vajk <kvajk@cup.hp.com>.- Spell "LICENSE" correctly: Kevin Vajk <kvajk@cup.hp.com>.- Use fcntl() for locking instead of flock() because it is much more standard.flock() usage noted by Kevin Vajk <kvajk@cup.hp.com>.- Use more portable IPPROTO_* instead of SOL_* (IPPROTO_IP, IPPROTO_TCP).Thanks to Neil Blakey-Milner <nbm@mithrandr.moria.org> porting to FreeBSD.- Start of Solaris port, thanks to Kurt Seifried <seifried@securityportal.com>for access to a Solaris 8 box.- Portability fix: include <netinet/in_systm.h> before <netinet/ip.h>.- Port to Solaris 8: new directory port. New file porting_junk.h. New filesolaris_bogons.h- Add vsf_findlibs.sh to cater for different platform link requirements. Nowbuilds on Solaris and Linux with "make".- struct sockaddr casts to kill Solaris warnings.- sysdeputil.c: remove unused variable warnings.- sysutil.c: use _exit() instead of exit() to avoid libc doing stuff on exit.Fixes segfault reported by Joshua Hill <josh@untruth.org>.- Add BENCHMARKS. Many thanks to Andrew Anderson <andrew@redhat.com>.- Fix disconnect/crash if SIGURG received whilst blocking on command stream.- Update INSTALL with more platforms.0.0.11 packaged---------------- Brag about performance in README. And why not.- Better bail-out message if the "ftp" anonymous user isn't found- Better bail-out message if the secure chroot directory isn't found- Introduce tunable_one_process_model and start work on it- Fix rare segfault on exit - race leading to infinite stack recursion- Don't bail out if we didn't get an argv[0]. Who cares? Noted by Kurt Seifried<seifried@securityportal.com>.- Change logged date format to include the year.- Add option to log in standard (wu-ftpd like) "xferlog" format.- Cater for sendfile() returning EINTR in sysdeputil.c- Use SO_LINGER on data sockets, to get accurate transfer rates!- Cater for an interrupted blocking close()- Tuning: eliminate 3 mprotect(), 1 munmap() and 1 mmap() system call percommand read.- Prevent infinite loops calling sendfile(). Two bugs - we needed to checkthe sendfile() return for 0 (doh!!) and also, we sometimes did lseek() ona file, to beyond its end. Thanks to Daniel Veillard <Daniel.Veillard@imag.fr>for reporting.- Tuning: cache fd's for /etc/passwd and /etc/group to avoid syscalls.- Tuning: "assist" the get*uid(), get*nam() calls to not make lots of uselesssyscalls, if /etc/group and /etc/passwd are missing. Thanks to Daniel Veillard<Daniel.Veillard@imag.fr> for reporting.- Use SO_LINGER timeout of 5 mins; INT_MAX seemed to do nothing!- Finally(!) fix transfer rate timing.0.0.12 packaged---------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -