View Single Post
Old 04-17-2008, 12:17 AM  
Yil
Too much time...
 
Join Date: May 2005
Posts: 1,194
Default

Code:
*** Bug Fixes

18) Possible "lockup" bug solution.  There were 2 places in the code which
    closed a socket and then removed the socket id from a list searched
    in a windows callback.  It should have been removed first and then
    closed to avoid a race condition.

19) Secure_Ip didn't properly initialize a variable and would thus fail the
    test for backwards compatibility (no rules defined at all) so it would
    reject all addip attempts from non-master accounts.

20) Ident responses now update the static data structure so site swho, shared
    memory commands, etc will no longer always have the default "*" in the
    ident field.

21) Very rarely the etc/UserIdTable and etc/GroupIdTable files get corrupted
    somehow.  I assume this is a result of a power failure or a system crash.
    I've added code to force the temp file to be flushed to disk along with
    it's metadata and asked for the file rename to be immediately written
    as well.  The rename should be an atomic operation where it either works
    or the OS rolls the rename back, so the only thing I can think of is that
    the new file wasn't committed to disk but the rename was.  Hopefully this
    should fix an extremely rare, but very bad, problem.

22) UserIpHostMaskInit would crash if no users were defined at all.

23) In some cases the hostname lookup for the HOST= or BIND= parameters would
    timeout or temporarily fail and you would see the following log entries:
      [timestamp] Unable to read/resolve host address: xyz.com
      [timestamp] Device 'Any' failed to start due to HOST/BIND/PORT error.
    Nothing special needs to be done if this occurs at startup since the
    next ConfigUpdate event [every 10 minutes by default] will hopefully
    fix things when the DNS server returns.  On an already active server when
    this happens during a ConfigUpdate event the server would stop listening
    for new connections until the hostname could be resolved at a future
    ConfigUpdate.  This is almost always the wrong thing to do and instead it
    will now either bind to all addresses, and/or use the previous HOST=
    resolved address.  It will still report the problem, but this should
    allow the server to continue accepting new logins provided the IP really
    hasn't changed.

24) Rewrote the logic to avoid strcpy_s and instead use stcncpy_s in the
    RecursiveAction function to avoid situations where path+filesnames which
    are longer than 260 characters would trigger the safety exception and
    cause the server to stop.  Instead a log entry with the first 260
    characters of the offending directory or file is printed in the
    Error.log file.

25) Fixed a bug which resulted in a crash if an unknown user tried to login
    and Require_Encrypted_Auth wasn't defined in ioFTPD.ini.
Yil is offline   Reply With Quote