diff --git a/conf.c b/conf.c index 3567252..1f35061 100644 --- a/conf.c +++ b/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') diff --git a/doc/chrony.conf.adoc b/doc/chrony.conf.adoc index ff95ccc..117b221 100644 --- a/doc/chrony.conf.adoc +++ b/doc/chrony.conf.adoc @@ -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 <> 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