mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 15:05:23 +00:00
dig and mdig failed to properly preparse dash value pairs when value was a seperate argument and started with a dash.
This commit is contained in:
4
CHANGES
4
CHANGES
@@ -1,3 +1,7 @@
|
|||||||
|
5090. [bug] dig and mdig failed to properly preparse dash value
|
||||||
|
pairs when value was a seperate argument and started
|
||||||
|
with a dash. [GL #584]
|
||||||
|
|
||||||
5089. [bug] Restore localhost fallback in dig and host which is
|
5089. [bug] Restore localhost fallback in dig and host which is
|
||||||
used when no nameserver addresses present in
|
used when no nameserver addresses present in
|
||||||
/etc/resolv.conf are usable due to the requested
|
/etc/resolv.conf are usable due to the requested
|
||||||
|
@@ -1859,6 +1859,20 @@ preparse_args(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
option = &option[1];
|
option = &option[1];
|
||||||
}
|
}
|
||||||
|
if (strlen(option) == 0U) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* Look for dash value option. */
|
||||||
|
if (strpbrk(option, dash_opts) != &option[0] ||
|
||||||
|
strlen(option) > 1U) {
|
||||||
|
/* Error or value in option. */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* Dash value is next argument so we need to skip it. */
|
||||||
|
rc--, rv++;
|
||||||
|
/* Handle missing argument */
|
||||||
|
if (rc == 0)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1535,7 +1535,7 @@ plus_option(char *option, struct query *query, bool global)
|
|||||||
* #true returned if value was used
|
* #true returned if value was used
|
||||||
*/
|
*/
|
||||||
static const char *single_dash_opts = "46himv";
|
static const char *single_dash_opts = "46himv";
|
||||||
/*static const char *dash_opts = "46bcfhiptvx";*/
|
static const char *dash_opts = "46bcfhiptvx";
|
||||||
static bool
|
static bool
|
||||||
dash_option(const char *option, char *next, struct query *query,
|
dash_option(const char *option, char *next, struct query *query,
|
||||||
bool global, bool *setname)
|
bool global, bool *setname)
|
||||||
@@ -1755,6 +1755,20 @@ preparse_args(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
option = &option[1];
|
option = &option[1];
|
||||||
}
|
}
|
||||||
|
if (strlen(option) == 0U) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* Look for dash value option. */
|
||||||
|
if (strpbrk(option, dash_opts) != &option[0] ||
|
||||||
|
strlen(option) > 1U) {
|
||||||
|
/* Error or value in option. */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* Dash value is next argument so we need to skip it. */
|
||||||
|
rc--, rv++;
|
||||||
|
/* Handle missing argument */
|
||||||
|
if (rc == 0)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user