mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 21:05:06 -05:00
conf: require sourcedir files to be terminated by newline
When reading a *.sources file require that each line is termined by the newline character to avoid processing an unfinished line, e.g. due to an unexpected call of the reload command when the file is being written in place.
This commit is contained in:
5
conf.c
5
conf.c
@@ -1694,8 +1694,9 @@ load_source_file(const char *filename)
|
||||
return;
|
||||
|
||||
while (fgets(line, sizeof (line), f)) {
|
||||
if (strlen(line) >= MAX_LINE_LENGTH)
|
||||
continue;
|
||||
/* Require lines to be terminated */
|
||||
if (line[0] == '\0' || line[strlen(line) - 1] != '\n')
|
||||
break;
|
||||
|
||||
CPS_NormalizeLine(line);
|
||||
if (line[0] == '\0')
|
||||
|
||||
@@ -2310,7 +2310,8 @@ confdir @SYSCONFDIR@/chrony.d
|
||||
[[sourcedir]]*sourcedir* _directory_...::
|
||||
The *sourcedir* directive is identical to the *confdir* directive, except the
|
||||
configuration files have the _.sources_ suffix, they can only specify NTP
|
||||
sources (i.e. use the *server*, *pool*, and *peer* directive), and can be
|
||||
sources (i.e. the *server*, *pool*, and *peer* directives), they are expected
|
||||
to have all lines terminated by the newline character, and they can be
|
||||
reloaded by the <<chronyc.adoc#reload,*reload sources*>> command in
|
||||
*chronyc*. It is particularly useful with dynamic sources like NTP servers
|
||||
received from a DHCP server, which can be written to a file specific to the
|
||||
|
||||
Reference in New Issue
Block a user