From 83f908683a137b3e947e7d12b7e90f1b4a22db58 Mon Sep 17 00:00:00 2001
From: Pieter Baauw <piba.nl.dev@gmail.com>
Date: Sat, 13 Feb 2016 15:51:58 +0100
Subject: [PATCH 3/4] MEDIUM: resolvers, cfgparse, do not allow 'timeout retry'
to be misspelled
---
src/cfgparse.c | 32 +++++++++++++++++++++++---------
1 file changed, 23 insertions(+), 9 deletions(-)
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 9dcae48..b6e3e2b 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -2366,23 +2366,37 @@ int cfg_parse_resolvers(const char *file, int linenum, char **args, int kwm)
curr_resolvers->resolve_retries = atoi(args[1]);
}
else if (strcmp(args[0], "timeout") == 0) {
- const char *res;
- unsigned int timeout_retry;
-
- if (!*args[2]) {
+ if (!*args[1]) {
Alert("parsing [%s:%d] : '%s' expects 'retry' and <time> as arguments.\n",
file, linenum, args[0]);
err_code |= ERR_ALERT | ERR_FATAL;
goto out;
}
- res = parse_time_err(args[2], &timeout_retry, TIME_UNIT_MS);
- if (res) {
- Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
- file, linenum, *res, args[0]);
+ else if (strcmp(args[1], "retry") == 0) {
+ const char *res;
+ unsigned int timeout_retry;
+
+ if (!*args[2]) {
+ Alert("parsing [%s:%d] : '%s %s' expects <time> as argument.\n",
+ file, linenum, args[0], args[1]);
+ err_code |= ERR_ALERT | ERR_FATAL;
+ goto out;
+ }
+ res = parse_time_err(args[2], &timeout_retry, TIME_UNIT_MS);
+ if (res) {
+ Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s %s>.\n",
+ file, linenum, *res, args[0], args[1]);
+ err_code |= ERR_ALERT | ERR_FATAL;
+ goto out;
+ }
+ curr_resolvers->timeout.retry = timeout_retry;
+ }
+ else {
+ Alert("parsing [%s:%d] : '%s' expects 'retry' and <time> as arguments got '%s'.\n",
+ file, linenum, args[0], args[1]);
err_code |= ERR_ALERT | ERR_FATAL;
goto out;
}
- curr_resolvers->timeout.retry = timeout_retry;
} /* neither "nameserver" nor "resolvers" */
else if (*args[0] != 0) {
Alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
--
2.7.0.windows.1
From: Pieter Baauw <piba.nl.dev@gmail.com>
Date: Sat, 13 Feb 2016 15:51:58 +0100
Subject: [PATCH 3/4] MEDIUM: resolvers, cfgparse, do not allow 'timeout retry'
to be misspelled
---
src/cfgparse.c | 32 +++++++++++++++++++++++---------
1 file changed, 23 insertions(+), 9 deletions(-)
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 9dcae48..b6e3e2b 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -2366,23 +2366,37 @@ int cfg_parse_resolvers(const char *file, int linenum, char **args, int kwm)
curr_resolvers->resolve_retries = atoi(args[1]);
}
else if (strcmp(args[0], "timeout") == 0) {
- const char *res;
- unsigned int timeout_retry;
-
- if (!*args[2]) {
+ if (!*args[1]) {
Alert("parsing [%s:%d] : '%s' expects 'retry' and <time> as arguments.\n",
file, linenum, args[0]);
err_code |= ERR_ALERT | ERR_FATAL;
goto out;
}
- res = parse_time_err(args[2], &timeout_retry, TIME_UNIT_MS);
- if (res) {
- Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s>.\n",
- file, linenum, *res, args[0]);
+ else if (strcmp(args[1], "retry") == 0) {
+ const char *res;
+ unsigned int timeout_retry;
+
+ if (!*args[2]) {
+ Alert("parsing [%s:%d] : '%s %s' expects <time> as argument.\n",
+ file, linenum, args[0], args[1]);
+ err_code |= ERR_ALERT | ERR_FATAL;
+ goto out;
+ }
+ res = parse_time_err(args[2], &timeout_retry, TIME_UNIT_MS);
+ if (res) {
+ Alert("parsing [%s:%d]: unexpected character '%c' in argument to <%s %s>.\n",
+ file, linenum, *res, args[0], args[1]);
+ err_code |= ERR_ALERT | ERR_FATAL;
+ goto out;
+ }
+ curr_resolvers->timeout.retry = timeout_retry;
+ }
+ else {
+ Alert("parsing [%s:%d] : '%s' expects 'retry' and <time> as arguments got '%s'.\n",
+ file, linenum, args[0], args[1]);
err_code |= ERR_ALERT | ERR_FATAL;
goto out;
}
- curr_resolvers->timeout.retry = timeout_retry;
} /* neither "nameserver" nor "resolvers" */
else if (*args[0] != 0) {
Alert("parsing [%s:%d] : unknown keyword '%s' in '%s' section\n", file, linenum, args[0], cursection);
--
2.7.0.windows.1