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:
parent
a9f0c681cb
commit
13a78ecd2f
2 changed files with 5 additions and 3 deletions
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
|
||||
|
|
Loading…
Reference in a new issue