1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964
|
Version 1.3.13:
1) Change: Revamped build system to use new build tools.
2) Change: Included authentication modules into build system.
They are installed (if selected at configure time) into
the libdir from configure. Normally prefix/lib
(/usr/local/lib if not specified).
3) Bug Fix: Properly fixed bug in 1.3.12.1, so muddleftpd does not
accept /r or /n from user input unless it is the form of
a TELNET newline.
4) Bug Fix: Scrambled output on PPC systems fixed. (possibly other
systems too)
5) Change: Install .txt documentation in prefix/share/doc/muddleftpd/*.
Version 1.3.12.1:
1) Bug Fix: Fixed logging of /r and /n so they are converted to
spaces.
Version 1.3.12:
1) Bug Fix: Linux does not like custom PASV replies with ip-masq.
Using reply recommended (but not mandatory) in RFC959.
(Beau Kuiper)
2) Change: Included support for large files (> 2 gig) on 32bit
systems.
3) Change: Removed QUIET compile option, replaced by verbose
parameter.
4) Change: Added support for HP-UX 11.00
5) Bug Fix: fixed warnings with GCC 3.X compiler
Version 1.3.11:
1) Change: Updated mudlogd. now sighup will reload config file.
(Beau Kuiper)
2) Bug Fix: Overflowing port value allowed sending data to ports
below 1024 dispite restrictions. (Beau Kuiper)
3) Bug Fix: Fixed storing files so they are truncated to the
start position, like other ftpds. (Beau Kuiper)
4) Bug Fix: Removed races in the STOR and STOU commands.
(Beau Kuiper)
5) Bug Fix: Removed race in STOU unique filename generator.
(Beau Kuiper)
6) Change: Minor optimizations, less malloc frobbing in some common
code paths.
Version 1.3.10:
1) Bug Fix: Fixed warnings from gcc. (Beau Kuiper)
2) Change: Added %(x,*)d format for cookies. (Beau Kuiper)
3) Bug Fix: Fixed gid/uid handling, corrected casting,
mainly useful for older machines with 16bit uid and gid
(Beau Kuiper)
4) Bug Fix: Fixed manual page installation to put .1 at the end.
(Decklen Foster)
5) Bug Fix: Fixed makefile problems. (Beau Kuiper)
6) Bug Fix: Fixed freeing of null pointers when specified configuration
file is a directory. (Beau Kuiper)
7) Bug Fix: Fixed gid/uid handling so NIS works. (Beau Kuiper)
8) Change: Now using new malloc library. It is much better than
most other mallocs, including GNU's (Beau Kuiper)
9) Change: Added the package Muddlestats. It seems very good and
has a promising future. (McRee)
10) Bug Fix: Fixed uploads on IBM AIX systems. This bug has existed
a long time. (Beau Kuiper, helped by Sergey Novoselov)
11) Bug Fix: Fixed recursive directory listings again (Beau Kuiper,
helped by Nik Soggia)
12) Documentation: Minor changes to example configs. (Beau Kuiper)
13) Documentation: Added mudlogd documentation. (Beau Kuiper)
14) Change: Added the mudlogd program, which works separatly from
muddleftpd to allow simple log rotation. (Beau Kuiper)
Version 1.3.9:
1) Bug Fix: Connection rejections if DNS broken fixed. (Beau Kuiper)
2) Documentation: added mudpasswd manual page. (Decklen Foster)
3) Bug Fix: Better error reporting in ftpwho (Decklen Foster)
4) Documentation: Minor change to info page. (Decklen Foster)
5) Bug Fix: made forking into background a command line
parameter instead of a #define (Beau Kuiper)
6) Change: added separate upload/download speed limiters for people
with differing upload and download speeds, eg cable modem
and ASDL. (Beau Kuiper)
7) Change: changed source tree directory structure, separating source
files into thier own directory. (Beau Kuiper)
8) Bug Fix: Fixed directory listing again, so even simpler and
better. (Beau Kuiper)
9) Bug Fix: Small memory leak in listing code fixed. (Beau Kuiper)
10) Bug Fix: Finally fixed date parsing in list code so year is
displayed if last modified was a different year.
(Beau Kuiper)
11) Bug Fix: String length checking fixes for config files.
(Tomas Ogren)
12) Bug Fix: Memory alignment issues fixed in configuration
include sections (Tomas Ogren)
13) Bug Fix: Some libc's don't like being told to vsnprintf
without a buffer. Fixed autoconf script to
check for this and use replacement if true.
(reported by Tomas Ogren, fixed by Beau Kuiper)
14) Bug Fix: Moved HOST reply strings to reply.h (Beau Kuiper)
15) Change: added EPSV and EPRT commands, to support IPV6 at
a later date. (Beau Kuiper)
16) Change: added busydumpdata directive option for main and
virtual server sections. Now the server won't blindly
disconnect if too many users connect at the same
time. (Idea by Tomas Ogren, done by Beau Kuiper)
17) Bug Fix: Fixed makefiles to use configure specified manpage
and info directories. (Decklin Foster)
18) Bug Fix: Fixed ABOR to forget any data port information.
(Beau Kuoper)
19) Bug Fix: Fixed default data port handling, with server using
the wrong IP address. (Beau Kuiper)
20) Bug Fix: Fixed SITE error message with no parameters.
(Beau Kuiper)
Version 1.3.8:
1) Bug Fix: Fixed bug in ratio record creation
2) Change: Added HOST support as outlined in the draft I have
written.
3) Bug Fix: Minor fix for errorous exit. Now exits with 1 if an
error occurs. Suggested by Decklin Foster
4) Bug Fix: More descriptive error messages for when the server
has too many users.
5) Bug Fix: Recursive listing crashed muddleftpd if the last dir
scanned but the recurse algorithm is empty.
6) Bug Fix: substantial fix to be more compatible with /bin/ls for
recursive lists. Should fix mirror.pl
7) Bug Fix: upload resume using STOR command fixed. A very simple
mistake that existed in the whole (1.3.X) series.
8) Bug Fix: Fixed free NULL pointer error when no ipacls specified.
Version 1.3.7:
1) Bug Fix: Listing ACL's did not work correctly.
2) Bug Fix: Major bug in freeing children caused major problems
after server maxusers had logged in and out.
3) Bug Fix: Bind errors were being displayed when using runasuser
directive. They are now ignored (they are harmless)
4) Bug Fix: SIGHUP is now not acted upon if runasuser is active.
Version 1.3.6:
1) Bug Fix: Fixed serious DOS bug when the new maxipconnect
directive is used.
Version 1.3.5:
1) Change: Pam module now accepts option pam_user, to force
the username it will read from the password file and
return the credentials for.
2) Bug Fix: better logging of some failed calls.
3) Change: Now quitdump, cddump and welcome do not need to be
specified specially for chroot mode.
4) Bug Fix: string.c changed for easier porting. Was GCC dependant.
5) Bug Fix: memcpy bug while resolving hostnames.
6) Bug Fix: Improper handling of uid, gid in authentication.
7) Bug Fix: Warnings repaired, prototypes rebuilt using scribe.
8) Change: Ftp list code now supports recursive listing. The listing
code is very fast/memory efficient.
9) Bug Fix: Fixed memory leak while authenticating user.
10) Change: Added funtions to retrieve hostname/ip from
authentication modules.
11) Change: I am using my own glob routines now, sorts correctly for
machines without glob.
12) Change: The fnmatch code I wrote is now being used regardless of
whether the library has its own one.
13) Bug Fix: fnaccess and pfnaccess have been repaired, and can be
used.
14) Change: Listing now shows total directory sizes like the real
ls.
15) Bug Fix: Dumping relative files when changing directories caused
the file for the last directory to be dumped
16) Bug Fix: ratiotool failed to set correct file permissions on
a newly created ratio file.
17) Bug Fix: compile fixes for IRIX.
18) Bug Fix: Macros broken in ftpd.h
19) Bug Fix: Ips were shown backwards in ftpwho if reverse hostname
was not found.
20) Change: Added option maxconnectperip. This limits the number of
connections from a single IP address.
21) Bug Fix: Fix when user operation is more than 120 characters.
This lead to ftpwho printing the hostname after the
operation.
22) Bug Fix: cookies in access directives were not being applied
correctly.
23) Bug Fix: Signals must be blocked while reloading config, or
deleting users, or bad things happen
Version 1.3.4:
1) Bug Fix: The internal password module was feeding the config
error function the wrong variable.
2) Bug Fix: Fixed a bug in include handling that would prevent
use in 64bit environments.
3) Bug Fix: Include looping is now checked before config file is
loaded.
4) Change: Removed authparams option. Auth modules get to fend for
themselves (this provides more functionality, and better
directive names)
5) Bug Fix: Help was not being shown correctly.
6) Documentation: Updated some documentation.
7) Bug Fix: Possible to free NULL pointers in config.c
8) Change: Changed a few error messages to be more understandable.
9) Change: A temporary change that will lock up muddleftpd if it
tries to free a NULL pointer. It locks muddleftpd up
so a debugger can get a clean backtrace of the program.
10) Bug Fix: Fix for attempting to rotate logs while in droproot
mode.
11) Bug Fix: Usernames are more rigourously checked because
regular expression characters in accepted usernames
may provide more access than intended.
12) Change: The anonymous authentication module now returns the uid
and gid of nobody instead of the ftp user. This is
more consistent with other ftp servers.
13) Change: Listing of devices is more accurate, showing the
major and minor device numbers like real ls.
14) Change: Muddleftpd now uses the real hostname as the default
hostname of the host and virtual servers.
15) Change: Ipacl for hostnames must be in brackets. Without
brackets, it is always checked against the IP
16) Bug Fix: got rid of any use of inet_ntoa, since I wasn't
using it right.
17) Change: Set default logstrength to log everything.
18) Documentation: Documented all server directives.
Version 1.3.3:
1) Change: Can now use %v in group config to get current virtual
server section name and %V to get current virtual server
host name. Ratio %v and %V are now %a and %A
2) Change: Can now use tokens in greeting line.
3) Bug Fix: Fix for bug where directories with % in them did weird
things (see version 1.2.10)
4) Change: New config option droproot. This option will drop all
root prividges when a user logs. It also will use
capibilities so it can still use low numbered ports on
linux 2.2 or better if libcap is installed.
5) Change: reply.h now contains macros to the replys the server
generates, It allows replies for foriegn languages or
other ftp servers to be used, basicly changing the
persona of the ftp server.
6) Bug Fix: muddleftpd was not correctly enforcing the one command
at a time requirement of FTP.
7) Bug Fix: muddleftpd was not updateing upload/download byte
counter.
Version 1.3.2:
1) Bug Fix: Muddleftpd is much more careful now about the
configuration file it listens to. The config file now
must be owned by the user/group who runs it, and must
not be world or group writable. This fixes a security
vulnerability in ftpwho if it is setuid. Same for
internal password files.
2) Change: Added the -n option to display IP's instead of hostnames
in ftpwho.
3) Bug Fix: Fix for truncated replys where length of reply was more
than 1024 characters.
4) Change: Implemented new directive include, which allows you to
include another section in the current section. Good for
creating templates.
5) Change: Changed how config errors were handled, improving error
reporting and detection
6) Change: By default, muddleftpd is built to be quiet on startup.
7) Change: ratios now get data from groups section rather than a
separate section. Use include to have ratio directives in
other sections.
8) Change: Sending SIGUSR1 to the server process will make it reopen
the log file and instruct the children servers to do the
same. Note that chrooted server children will not be able
to reopen the log file.
9) Change: added fnmatch pattern based access controls, including
controls to explicitly match slashes.
10) Bug Fix: Maximum process limit setting was broken, fixed.
11) Bug Fix: Symbolic links were always assumed readable in the
listing code. Does not work because the /proc
filesystem actually has non-world readable symbolic
links.
Version 1.3.1:
1) Change: Minor changes to how the scratchfile is used.
2) Change: Muddleftpd now uses proper unix style arguments. It
has a usage screen and a version option.
3) Change: PORT command more verbose, repling where it will connect
to.
4) Change: root privliges are given for connecting to low number
ports. This is for RFC951 complience.
5) Bug Fix: Fixed code so muddleftpd runs of FreeBSD. Borrowed :-)
some code from proftpd (for functions fgetpwent and
fgetgrent)
6) Bug Fix: snprintf replacement code has a bug causing very bad
problems.
7) Bug Fix: removed TCP_CORK code since it only slows data transfers
down.
8) Bug Fix: Fixed a few compile bugs.
9) Change: Changed log format and how log was written
10) Change: Added support of dlopen modules for authentication
modules
11) Change: Minor updates to authentication module interfaces.
12) Change: Passwords used by anonymous users are now logged.
13) Bug Fix: Fixed %N cookie for user count.
14) Change: Got rid of pidfile support, now ftpwho -p will return
the pid of the running standalone muddleftpd.
15) Change: Now scratchfile is used for locking in both inetd and
standalone modes. This means the server doesn't need to
lock against the config file and it could be changed
without problems.
16) Change: ftpwho program rewritten and much more useful now :-)
17) Bug Fix: A couple of missing returns fixed. Should have caused
problems already :-)
18) Bug Fix: A bug in acl.c fixed where segfault would occur if no
ACLs were specified for a user
19) Change: Authentication modules can now cancel authentication of
a user if a serious error occurs.
20) Change: Authentication is now cancelled if an authentication
module cannot be found.
21) Change: If muddleftpd cannot bind to a port when it starts up,
then it will exit. If it cannot bind to a port when
you issue a SIGHUP, then it will log it and continue.
22) Change: Commands can now be disabled per group within the config
file.
23) Bug Fix: Data corruption bug after SIGHUP removes a virtual
server fixed.
24) Change: When a user connects, muddleftpd will fail to recognize
all but a few commands needed to login.
25) Change: ftpwho reports vservers using their section names.
26) Change: Now download speed limits can be specified per group
These are highly accurate and reasonably smooth.
27) Bug Fix: Porting fixes for weirder unixes including simple-glob
fixes.
28) Bug Fix: Small bug parsing gid lists caused crashes with long
suplemental gid lists.
29) Change: Speed limits now also apply to file lists and uploads.
30) Bug Fix: New listing code would possibly break when a partial write
occured.
31) Change: Finished logindumpdata support.
Version 1.3.0:
1) Bug Fix: for large maxusers, the default settings would cause
muddleftpd to croak. Fixed.
2) Bug Fix: for long usernames and non-default constant values, a
possible problem with setting username has been fixed
3) Change: PAM module now does more logging to aid debugging.
4) Change: shared memory is more compact now, only storing thread
users.
5) Change: EXPERIMENTAL INETD SUPPORT!!!!
6) Bug Fix: on systems that need -ldl for pam support, it would
cause pam support not to compile. Fixed.
7) Bug Fix: if muddleftpd is running inetd mode, now errormessages
go to the system log.
8) Change: Log message now emmitted if non-existant auth method
used.
9) Change: Better debug logging system now in place. Can work
even with inetd
10) Bug Fix: Fix to MDTM. This broke netscape quite convincingly
11) Bug Fix: Fix for netscape race and maybe other clients.
12) Change: All configuration is in single file now! This improves
performace muchly esp under load.
13) Documentation: Examples updated for new code!
14) Bug Fix: Fix to logging where SITE commands were logged twice.
15) Bug Fix: Listing bug fixed where files were being used as
regular expressions.
16) Chnage: Replaced ACL code. New code also recognises mkdir and
rmdir, chmod and chdir. Add only applies to files now.
17) Change: Now ip's can be denied as well as allowed with the new
ipacl directive. Note that the order ipacl's are
specified in is very important.
18) Change: Now log messages are generated when a user logs out
of the server.
19) Bug Fix: User cannot specify PORT command with data port < 1024
20) Bug Fix: Total file size is now given when doing binary
downloads, regardless of starting position. Other
ftp servers act this way, and some client expect it.
21) Bug Fix: Maximum timeout was not correctly set.
22) Change: Writing to control port now has timeout, so it cannot
lock up.
23) Change: Continuation messages have new format that look nicer.
24) Change: New group system is working, It now traverses a list
of groups in the user file to determine what group a
user is. It needs more work ATM.
25) Change: added IP and name access lists to make group system
very, very, very configurable.
26) Bug Fix: For systems which uses non-DES encryption, muddleftpd
used crypt correctly.
27) Change: added hostname based matching and hostnames in logs.
28) Change: reverse dns timout setting added
29) Change: Alternate long reply format option added, allows for bad
proxys and stuff.
30) Change: VIRTUAL SERVER SUPPORT ADDED. Not yet completed or
optimised for file descriptor usage.
31) Bug Fix: Fixed several small bugs found in 1.2.2.
32) Bug Fix: A minor bug working with parameters fixed.
33) Bug Fix: A bug when parsing config files caused tabs to be
misinterpreted.
34) Change: Smart binding. This allow muddleftpd to minimize the
number of file descriptors used when binding files.
35) Change: Zero binding. When used with smart binding above, allows
virtual servers to be used on all servers. This basicly
makes sure all binds are performed on address 0.0.0.0
36) Change: Using rlimits instead of manually checking memory size
for determining overuse of memory.
37) Change: Made single configuration file loading to be less memory
intensive.
38) Change: Server will now reload config file with a HUP signal.
39) Change: Server now lets you specify if you want to real chroot
to the rootdir instead of doing a pretend chroot. It is
ignored if root access isn't avaliable. This provides
extreme security for paranoid system administrators
(like me!)
40) Change: When a user logs in, the uid/gid is switched to that
user instead of being left as root. This reduces code
size and improves security. I also seem to learn things
the hard way (I should have had this ages ago)
41) Change: Ratio support. An external binary file is used for this,
and users are added to it as they log in. Ratio's are
implimented so multiple sessions are no problem. Ratios
apply to both files and bytes, and can be persistant or
non-persistant.
42) Change: Config changes. Now parameters are easier to specify,
and including spaces is easy.
43) Change: By default, muddleftpd now doesn't allow access to non
regular files (eg device files). To re-enable use
devaccess in group sections.
44) Change: Full group support, include supplementry group lists.
45) Change: Added a ratio changing program, ratiotool. It can add,
edit and psudo-delete ratio file entries. It is safe to
use while the server is running.
46) Bug fix: Fixed a small bug that always put an extra / at the
beginning of a filename in the log if rootdir is /
47) Change: If rootdir contains symlinks, they are now dereferenced
as the user logs in.
48) Change: Added a realdir option. This will automaticly report the
real directory name, with all symlinks dereferenced,
instead of the internal construction.
49) Change: Added code to detect broken snprintf, and to work out
which syntax it uses and use that syntax.
50) Change: Detects if double ints work correctly and disables
ratios if they don't
51) Change: Added fxpallow option, so server-server transfers may
work on a per-group basis.
52) Change: Implemented output buffer to make sure long replies are
sent effeciently.
53) Change: Input from dumped files and user is now put through a
filter that removes non-printable characters.
54) Change: Implemented options to specify long replies directly in
the config file
55) Change: Data port handling rewritten, should be a little faster
now.
56) Change: Sendfile() support implemented. This should improve
performace slightly, but linux needs a better sendfile :(
57) Change: Groups and vserver limits are handled in a much better
way now. Faster for standalone operation, correct for
inetd operation.
58) Change: Log now contains thread id so it is easier to trace what
a specific user is doing
Version 1.2.10:
1) Bug Fix: Bug where % in pathname would cause weird errors when
current directory was displayed. It was caused by using
the output of one printf (with user supplied data)
as the format string in the next. Fixed by removing all
(except where it is obviously safe) non-constant format
strings in the source. Entire source was checked for the
problem.
Version 1.2.9:
1) Bug Fix: Mudpasswd backported from 1.3.X. Fixes problems with
mudpasswd segfaulting.
2) Change: Included an init file for system V init scripts
3) Chnage: Added a spec file for rpm generation. Havn't tested it
yet.
Version 1.2.8:
1) Bug Fix: Another config file reading bug fixed. If you used tabs
at the end of a value, they would not be discarded by
the ftp server.
2) Bug Fix: Repaired the README file.
Version 1.2.7:
1) Bug Fix: Rename bug fixed. Ops :-) Occured because errno wasn't
reset correctly.
Version 1.2.6:
1) Bug Fix: Fixed bug where garbage was printed if null password
was supplied.
Version 1.2.5:
1) Bug Fix: snprintf madness fixed. Server now works for all known
snprintf types.
2) Bug Fix: fixed the provided snprintf so it reports -1 if result
is too long.
3) Bug Fix: ftpwho would segfault in certain denied access cases.
Version 1.2.4:
1) Bug Fix: Parsing problems with tab separating name and value
pairs fixed.
2) Change: Ftpwho program revamped. It can now do reverse IP lookups
for hostnames and supports regular options. Run ftpwho -h
to see options.
3) Bug Fix: Problems with zero length strings on ftp commands fixed.
No real problems, just zero length parameters need to
be detected and reported as missing parameters.
2) Bug Fix: A secuity problem with cddump relative files has been
fixed. If the user could create a symlink as the name
of a relative cddump file, the user could view any file
on the system over the control connection.
Version 1.2.3 (was 1.1.1c)
1) Bug Fix: Active data connections now bind to specific interface.
Old method seemed to fail when used with strict ip
filewalls.
2) Bug Fix: If an error occured accepting a control connection, the
server would bad.
3) Bug Fix: If the PASV command couldn't bind to a port, it wouldn't
cleanly report the error.
4) Bug Fix: An extra close was hiding the real cause of data port
connection failure.
5) Bug Fix: Some calls to create sockets were not checked correctly.
6) Bug Fix: No error was displayed if passive port connection
accept fails
7) Bug Fix: Slight change in Makefile so that CFLAGS is recognised.
Version 1.1.1b (now 1.2.2):
1) Bug Fix: if you didn't set authmethod in the config file, the
server process would crash.
2) Bug Fix: if you use a non-DES crypt function, muddleftpd would
not authenticate properly. This bugfix fixes for a least
slackware 7.0.
3) Change: New versioning system. Now I copy the linux versioning
system since I cannot get it right myself.
4) Bug Fix: if a list failed due that was not the fault of glob,
then server would crash tring to free a non-existant
variable:
5) Change: You can use group/usernames for uid/gid specification now
in user config files and authentication modules.
Version 1.1.1a (now 1.2.1):
1) Bug Fix: Long usernames would cause the server to crash. Not an
exploitable bug, but not very nice looking.
2) Bug Fix: files dumped over control connection were not logged
correctly.
Version 1.1.1 (now 1.2.0):
1) Bug Fix: A minor memory leak was sealed.
2) Bug Fix: Changed ACL error code to EACCES instead of
EPERM.
3) Documentation: Added the info file back.
4) Change: log entry generated when a user logs out of the ftp
server
5) Bug Fix: Server will not allow client to specify a data port
less than 1024.
6) Bug Fix: Changed byte count when starting download to total size
of file regardless of restart position. Other ftp
servers act this way, and some clients use this info.
7) Change: When authenticating users, the server will change to
the configuration directory. This will improve
robustness of marginally defined configurations.
8) Bug Fix: Maximum timeout was not set correctly when logging user
in.
9) Bug Fix: Minor fixes for platform independance in mudpasswd.
Version 1.1.1beta3:
1) Bug Fix: invalid rootdir message didn't show root dir.
2) Bug Fix: fix for site commands being logged twice.
3) Documentation: info files removed for now since maintainer
hasn't reponded to email.
4) Bug Fix: Directory listing problems solved.
Version 1.1.1beta2:
1) Bug Fix: Pam support didn't compile on system with dynamic linking
in a library
2) Bug Fix: Small change to code to prevent problems if username
length constants get changed.
3) Bug Fix: Fix to MDTM command, broke netscape access quite well :)
4) Bug Fix: Fix for netscape race and maybe other clients.
Version 1.1.1beta1:
1) Change: Changed the error message management system. Now much
better.
2) Change: Help now contains descriptions for each command.
3) Change: Full shadow password support with account expiry.
4) Change: User now gets message as to why login fails.
5) Bug Fix: strerror was compiled even if it already existed!
6) Change: PAM support has been added!
7) Bug Fix: now all root logins get demoted to user nobody like they
should
8) Bug Fix: now user nobody from the password file is used to
determine what user nobody is. Any system without a user
nobody is in SERIOUS TROUBLE!
9) Change: Added the disabled user authentication which will disable
a user.
10) Bug Fix: Added a copy of the usleep function for older computers.
11) Documentation: Fixed documentation for new features.
12) Bug Fix: Put limits on maximum generated string lengths to
prevent users from filling virtual memory.
13) Change: Added SITE IDLE command.
Version 1.1.1beta0:
1) Change: Log message emitted when user cannot login due to bad
root dir
2) Change: Error messages for socket connection are better handled.
3) Change: added -d option to list a directory instead of its
contents.
4) Change: Major refit of auth code. Now all auth code is modularied
into the different sources. Makes adding new auth schemes
easily.
5) Change: new unix auth module can autodetect shadow passwords!
6) Change: config files can handle windows style files.
7) Change: added an internal password file support module.
8) Change: added runasuser option in main config file.
9) Change: removed runasuid and runasgid from main config file.
10) Change: created a simple mudpasswd program to modify internal
password files.
11) Change: Minor server reply tweeks.
12) Documentation: Fixed examples for new code.
13) Change: Added the badauthwait option to the main config file to
cause the server to wait a specifed number of milliseconds
if the user doesn't provide the correct password.
14) Change: Added the userjail option to user files so when the user
logs in, he/she will not be able to log into a new user.
Good for anonymous accounts.
15) Change: Added the logintrys option to the main config file. This
tells the server how many attempts a connection has to
login before the server refuses to log the user in.
Version 1.1:
1) Documentation: Added man page and info pages. Thanks to
Jonas Oberg <jonas@coyote.org> for this.
2) Bug Fix: Spelling mistake in init.c fixed. Thanks to
Jonas Oberg <jonas@coyote.org> for noticing my mistake.
3) Change: Server will now detect if it needs root access to bind to a
port and gives a message to the user if it is so.
Version 1.1.beta3: Final beta if no bugs are found!
1) Bug Fix: Fixed Makefile so QUIET=1 option is recognised.
2) Bug Fix: Fixed spelling mistake in init.c (already instead of
aleady)
3) Documentation: Added some documentation on how to build and install
muddleftpd (muddleftpd.txt)
4) Documentation: Updated README and INSTALL.
5) Bug Fix: If unixuser is specified and that specified user doesn't
exist, login will fail automaticly.
6) Bug Fix: If it can't load a user's config file, it will now
output a log message.
7) Bug Fix: Checks on files and directories now done in user auth
files.
8) Change: Minor optimisations to improve processing of file
dumping, streamlines code.
9) Bug Fix: busydump was crashing, due to incorrect working
directory value, fixed!
10) Bug Fix: the username in the shared memory structure is properly
updated at the correct time. Allows a user with
maxconnect 1, to relogin.
11) Documentation: Added documentation for user configuration files.
12) Bug Fix: now mud authenication stuff is not compiled by default.
13) Documentation: Added documentation for cookies in user config
files.
14) Documentation: Added documentation for accepted ftp commands.
15) Documentation: Gave up on HTML documentation!
Version 1.1.beta2:
1) Change: Failed magic cookie tranformations are logged so that the
admin can find if cookies fail. (I decided that this
change is minor enough and important enough to be added
before version 1.1)
2) Bug Fix: Download statistics were not correctly tallyed.
3) Documentation: Added documentation for dumped file magic cookies
(cookies.txt)
4) Documentation: Added documentation for ftpwho. (ftpwho.txt)
5) Documentation: changed user.other so that if the example config
is directly used, it won't open gaping holes in the
system.
6) Bug Fix: Server dies improperly on startup if shared memory isn't
initalized
7) Bug Fix: Commented out error message about shadow passwords not
working as root. Change 1 should produce a log entry if
the user tries to use shadow passwords without root
access.
8) Documentation: Created a new set of examples, that are more secure,
and better for creating a full configuration.
9) Bug Fix: Updated socket.c, now if the server fails binding data
connections for any reason, it lets the computer choose
the port.
Version 1.1.beta1: Thanks to Mike Javorski <mikej@carmelfly.com> for the
first 3 fixes.
1) Bug Fix: Removed SO_SNDLOWAT and SO_RCVLOWAT log messages because
they are unimportant and seem to be annoying people :)
The feature is still there, it will just fail quietly on
systems that have problems with it.
2) Bug Fix: Manual page installation fixed (but commented out becuase
the manual page is yet to be written.
3) Bug Fix: Fixed ftpwho.c for ANSI C complience. Now main returns
an int.
4) Bug Fix: Defined prototypes for listing functions and found a bug
where they wern't supplied correct parameters.
5) Bug Fix: Server now checks if you are already logged in before
accepting a password command.
6) Bug Fix: Ops, I must have been on drugs to not have noticed this
bug before now (and write the broken code). SIZE in ascii
mode was badly broken.
7) Bug Fix: SITE CHMOD was broken and logged out the client
8) Bug Fix: HELP missed the first command when printing out a
command list.
9) Bug Fix: When using runasuid/runasgid, the parent terminal holder
would not get killed due to the process not having
permission after changing uid.
10) Bug Fix: When using runasuid/runasgid, and listening on ports
less than 1024, muddleftpd would fail to create data
ports because it couldn't bind to the port.
11) Bug Fix: prototypes in ftpd.h for procnum.c fixed.
12) Bug Fix: ftpwho.c now includes <unistd.h> as required.
13) Bug Fix: fixed compiler warning compiling sglob.c on systems
without glob.
14) Bug Fix: Prototype for strerror if the system hasn't got an
strerror
15) Bug Fix: Fixed problems about double defining crypt
16) Bug Fix: -lsocket and -lnsl should work for machines that need
them now.
Version 1.1.beta0:
1) Bug Fix: forkwrapper is declared int instead of pid_t in ftpd.h
fixed.
2) Bug Fix: On systems that don't support GLOB_PERIOD, compile will
fail, fixed.
3) Documentation: Added some documentation for the main config file,
in doc/config.txt
4) Bug Fix: Compile warning fixed for ftp.c
5) Bug Fix: Fixed race condition in starting up program where tty
could hang if the parent recieved the signal to
give it back too soon.
6) Documentation: Added some HTML documentation (just a quick
conversion of doc/config.txt)
Version 1.1.alpha5: Imposing a feature freeze for Version 1.1. Only bugfixes
and documentation from here.
1) Change: Magic cookies when authing clients is now handled more
gracefully. No user side changes. This allows Change 6.
2) Bug Fix: Empty listing caused memory leak. Fixed.
3) Change: Server now holds the terminal until after the startup
messages so the prompt occurs after it.
4) Change: Startup message fixed for correctness.
5) Bug Fix: pids are now type pid_t, gids are now type gid_t, and
uids are now type uid_t in my program. They were ints
before!.
6) Change: Now magic cookies work in dumped files (eg welcome file)
so you can give info out. The cookies are similar to the
real wu.ftpd cookies.
7) Change: Added email option in config file for magic cookie %E.
8) Change: Now you can bind to a port to a specific interface by
using port/ip as a parameter to ftpport. eg to bind
port 21 on the loopback device use "ftpport 21/127.0.0.1"
in the config file.
Version 1.1.alpha4:
1) Change: SITE command now operates similarly to normal command. No
user visible changes.
2) Change: Messages have changed so that the code is more general.
3) Change: STAT ACCESS has been moved over the SITE ACCESS.
4) Change: help routine is more generalized, giving better results,
less code and more maintainablity.
5) Change: Now I use config.h instead of lots of compile options.
Thanks to Decklin Foster <decklin@home.com> for the
patch.
6) Change: The pidfile is used to check if muddleftpd is still
running. If it is, muddleftpd refuses to start. Note, you
can still have multiple instances of muddleftpd if they
run with different config files.
7) Bug Fix: config file name was not initalized properly.
8) Change: Added a new user config option (quitdump) that prints a
file when the user quits.
Version 1.1.alpha3:
1) Bug Fix: New parameter bug where process will segfault if it
cannot correctly substitue a %(a,b)h parameter.
2) Change: Ftp listing is better now, it recognises the -a option
and displays all files. This improves interpolability
with misbehaving clients.
3) Change: I removed the status reporting option and the code that
does it.
4) Change: Shared memory used by muddleftpd can now be externally
accessed. (for things like ftpwho)
5) Change: Added a simple ftpwho program that actually works
without races by accessing the shared memory.
6) Change: The default config file is now specified in config.h
Version 1.1.alpha2:
1) Change: Changed the status reporting so it now dumps info into a
file that can be read by other programs.
3) Change: The admin now has the option to create a pidfile as
muddleftpd starts.
2) Change: Changed the way parameters are processed. Now you can
select a range of characters to include. eg %(10,12)h
means to substitute characters 10 through 12 into the
string. The old %h still works.
Version 1.1.alpha1:
1) Change: Added simple shadow password support
2) Change: Changed the way listing works. Simpler, easier
3) Change: now STAT <filename> works.
4) Change: A list cannot be longer than MAXLISTSIZE
5) Bug Fix: A long running LIST -n ./ bug has been fixed. It caused
an embarrasing infinite loop. Been in there for ages.
A big thanks to Richard(Sputa@os3.os.ds.mfcr.cz) for the
tipoff.
6) Bug Fix: Resume position should not be allowed to be negative.
Version 1.1.alpha0: * means ported back to 1.0
1)*Bug Fix: Rename fixed again to check if RNFR was run before RNTO
2) Change: The main routine now uses the select.c services.
3) Change: The server can bind to many ports, and serve ftp over
them
4)*Bug Fix: Memory leak in displaying symbolic links in listing.
5) Change: Internal list function now displays setuid/setgid and
sticky bit. Rewrote to be much smaller.
6)*Bug Fix: Fixed ENOTDIR error to becone MYERR_NODIR instead of
MYERR_NOFILE in file.c
7)*Bug Fix: Minor changes to error descriptions in ftp.c
8) Change: ~ works for going to your home directory.
9) Change: Download/Upload now don't memmove buffer.
10) Change: make a substitute glob using old BSD re_comp calls
for very old systems.
11)*Bug Fix: Uid/Gid cache full causes problems.
12) Change: for passive downloads, makes sure the host that connects
to the dataport is also the host that the control port
is connected to
13)*Bug Fix: Obscure bug in ftplist.c fixed!
14) Change: The server sets the high and low water marks for the
sockets on opening a data connection to improve
performace.
15) Change: Added the STOU command!
16) Change: Added the ability to type a file before the user logs in
17) Change: Added the ability to type a file when the user enters a
directory.
18) Change: The welcome file is now an absolute filename instead of
relative to rootdir
19)*Bug Fix: Timeout didn't get updated properly when user logged on.
20) Change: Added timeout to STAT command.
21) Change: Added the APPE command!
22) Change: Added the ALLO command. Does nothing.
23) Change: Added the ACCT command. Does nothing.
24)*Bug Fix: The server didn't kill children ftpd processes. Now it
does.
25)*Bug Fix: If you didn't specify a groupname in a user file, the
server would crash.
26) Change: Changed maxthreads directive to maxusers.
27) Change: Cleaned up reading of commands.
28) Change: Started to use assertions to debug code.
29) Bug Fix: Server full log message not logged correctly.
30) Change: select.c adjusted to work better.
31) Bug Fix: server made 2 replys on logout.
32) Bug FIx: server can handle lots of dataconnections now.
33) Change: now too many login message is configurable per user
using the busydump directive.
34) Change: ASCII upload resume disabled. It is not actually
possible to this safely. Use the APPE command instead.
35) Change: Changed data collection to use shared memory rather than
pipes. Faster, easier to access and allows future
changes.
36) Change: Error messages now output the filename and line the
error occured on.
37) Change: I am starting to use assersions to test features, find
bugs.
38) Bug Fix: Server exits if it can't write to the log file, i.e
disk full or other fatal error.
39) Change: Passive is handled better througth the main select
handler.
40) Change: A simple strerror replacement has been thrown in for
unlucky systems that don't have it.
41) Bug Fix: High and low water marks are only set if the constants
for them exist. See 14.
42) Bug Fix: --prefix parameter in configure works as expected.
Version 1.0: These fixed are ported back from version 1.1.alpha0.
1) Bug Fix: very obscure and rare bug fixed in ftplist.c
2) Bug Fix: Memory leak fixed in listing symbolic links.
3) Bug Fix: Rename fixed to check if the command RNFR was
run first.
4) Bug Fix: Fixed ENOTDIR to become MYERR_NODIR instead of
MYERR_NOFILE in file.c
5) Bug Fix: Modified error descriptions in error.c
6) Bug Fix: Fixed problems with full UID/GID caches.
7) Bug FIx: Timeout wasn't updated when user logged in.
8) Bug Fix: children processes are now automaticly killed when
you kill the parent.
9) Change: Changed maxthreads to maxusers in the config file
10) Bug Fix: If you don't specify a groupname in the user config
file, then the server will crash.
Version 1.0.beta3:
1) Bug Fix: Buffers in acl.c fixed. Checked the rest of the code for
possible buffer problems.
2) Bug Fix: stats.c buffers fixed. (not really a problem)
3) Bug Fix: pnums.c buffers fixed. (not really a problem)
4) Bug Fix: ftplist.c buffers fixed. (not really a problem)
5) Bug Fix: Rename properly fixed. For some reason it worked with
the bug, and that worries me a little!
6) Change: reentrant.c (old name for original threaded version)
cleaned up a little.
Version 1.0.beta2:
1) Bug Fix: QUIT stopped working on 1.0.beta1, now fixed.
2) Bug Fix: Buffers in auth.c fixed completely.
3) Bug Fix: newfile.c has a realloc bug in it. ie it used a
pointer to the buffer after remalloc was run, and since
realloc may move the data to a new location, it was
unstable but difficult to debug!
4) Bug Fix: a couple of memory over-freeing bugs fixed.
5) Change: Symbolic links listed properly.
Version 1.0.beta1:
1) Bug Fix: unimplemented type would print response code twice.
2) Bug Fix: %U wasn't recognized unless unixuser was specified.
3) Bug Fix: Permanent group changes specified in config file would
not work.
4) Change: FTP server now runs data transfers (almost) completely
non-blocking. Timeout and ABOR work properly. ASCII
resume works now too.
5) Change: Most of the code has been rewritten to use dynamic
buffers, removing most problems with fixed buffer code.
6) Change: cdup, pwd, and cwd all use the same code now, thus all
return the current directory
7) Change: mkdir now uses the 257 return code.
8) Change: all commands now give better error messages based on
the real error, not the most likely error.
Version 1.0.beta0:
1) First Version with CHANGES file.
|