]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
cmdparse: check if stratum in local directive is valid
authorMiroslav Lichvar <mlichvar@redhat.com>
Wed, 6 Apr 2016 14:38:14 +0000 (16:38 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Wed, 6 Apr 2016 14:38:14 +0000 (16:38 +0200)
cmdparse.c

index 1f1064a89eb0e912e6dfbaa21022d24e4dee0f76..b65fd2f52bb56378811a854b331ac82d27e795ab 100644 (file)
@@ -238,7 +238,8 @@ CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance)
     line = CPS_SplitWord(line);
 
     if (!strcasecmp(cmd, "stratum")) {
-      if (sscanf(line, "%d%n", stratum, &n) != 1)
+      if (sscanf(line, "%d%n", stratum, &n) != 1 ||
+          *stratum >= NTP_MAX_STRATUM || *stratum <= 0)
         return 0;
     } else if (!strcasecmp(cmd, "orphan")) {
       *orphan = 1;