while `dynamic link-mode' is on, is recorded in the executable. The
run-time linker will search these paths after $LD_LIBRARY_PATH but
before the default set and those currently in the hints file.
The feature is disabled whenever for set[ug]id programs.
explicitly set the user and group IDs to non-priveleged values. This
was done because the chroot() call used when the secure (-s) option is
used can only be done by the superuser.
This change now requires tftpd to be executed by root. So the
inetd.conf entry has been changed to start it that way. I also
added -s /tftpboot arguments, so people who uncomment the tftpd
entry without realizing it's security ramifications won't open
thier whole systems to unauthorized access.
call to succeed, and must give up those privledges as soon as the new
root has been aquired. Use setgid() & setuid() to explicitly set the
user and group IDs to non- priveleged values.
This change now requires tftpd to be executed by root. I haven't
studied the security implications of making it setuid root, so
inetd.conf needs to be changed to start it as root.
chownerr() would prematurely terminate the program if a error occured
(lack of permissions, nonexistant file, etc.), but POSIX.2 requires
that the chown and chgrp utilities continue on. Removing the code
that caused the program to exit turned chownerr into a wrapper
around warn(), so why not call warn() directly.
Also changed the file traversal logic so that directories are not
chown()'d twice. This only occured when the -R option was not used.