cmdparse: check if stratum in local directive is valid

This commit is contained in:
Miroslav Lichvar 2016-04-06 16:38:14 +02:00
parent a9049569af
commit 4d1c795804

View file

@ -238,7 +238,8 @@ CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance)
line = CPS_SplitWord(line); line = CPS_SplitWord(line);
if (!strcasecmp(cmd, "stratum")) { 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; return 0;
} else if (!strcasecmp(cmd, "orphan")) { } else if (!strcasecmp(cmd, "orphan")) {
*orphan = 1; *orphan = 1;