When opening a file for appending (i.e. a log file), use the O_NOFOLLOW
flag to get an error if the path is a symlink. Opening log files through
symlinks is no longer supported.
This is a protection against symlink attacks if chronyd is misconfigured
to write a log in a world-writable directory (e.g. /tmp). That is not
meant to become a recommended practice. Log messages will be lost, or
chronyd won't start, if a symlink exists at the location of the log
file.
break;
case 'a':
case 'A':
- flags = O_WRONLY | O_CREAT | O_APPEND;
+ flags = O_WRONLY | O_CREAT | O_APPEND | O_NOFOLLOW;
file_mode = "a";
break;
default: