2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-28 21:07:43 +00:00

[master] Add a better warning about multiple key definitions

This commit is contained in:
Shawn Routhier 2014-04-28 14:52:37 -07:00
parent fc48033aa1
commit db3f77999c
2 changed files with 26 additions and 17 deletions

View File

@ -69,6 +69,11 @@ by Eric Young (eay@cryptsoft.com).
- Remove an extra set of the msg_controllen variable. - Remove an extra set of the msg_controllen variable.
[ISC-Bugs #21035] [ISC-Bugs #21035]
- Add a more understandable error message if a configuration attempts
to add multiple keys for a single zone. Thanks to a patch from Jiri
Popelka at Red Hat.
[ISC-Bugs #31892]
Changes since 4.3.0rc1 Changes since 4.3.0rc1
- None - None

View File

@ -2872,27 +2872,31 @@ int parse_zone (struct dns_zone *zone, struct parse *cfile)
break; break;
case KEY: case KEY:
skip_token(&val, (unsigned *)0, cfile); skip_token(&val, NULL, cfile);
token = peek_token (&val, (unsigned *)0, cfile); token = peek_token(&val, NULL, cfile);
if (token == STRING) { if (token == STRING) {
skip_token(&val, (unsigned *)0, cfile); skip_token(&val, NULL, cfile);
key_name = (char *)0; key_name = NULL;
} else { } else {
key_name = parse_host_name (cfile); key_name = parse_host_name(cfile);
if (!key_name) { if (!key_name) {
parse_warn (cfile, "expecting key name."); parse_warn(cfile, "expecting key name.");
skip_to_semi (cfile); skip_to_semi(cfile);
return 0; return (0);
} }
val = key_name; val = key_name;
} }
if (omapi_auth_key_lookup_name (&zone -> key, val) != if (zone->key) {
log_fatal("Multiple key definitions for zone %s.",
zone->name);
}
if (omapi_auth_key_lookup_name(&zone->key, val) !=
ISC_R_SUCCESS) ISC_R_SUCCESS)
parse_warn (cfile, "unknown key %s", val); parse_warn(cfile, "unknown key %s", val);
if (key_name) if (key_name)
dfree (key_name, MDL); dfree(key_name, MDL);
if (!parse_semi (cfile)) if (!parse_semi(cfile))
return 0; return (0);
break; break;
default: default:
@ -2901,12 +2905,12 @@ int parse_zone (struct dns_zone *zone, struct parse *cfile)
} }
} while (!done); } while (!done);
token = next_token (&val, (unsigned *)0, cfile); token = next_token(&val, NULL, cfile);
if (token != RBRACE) { if (token != RBRACE) {
parse_warn (cfile, "expecting right brace."); parse_warn(cfile, "expecting right brace.");
return 0; return (0);
} }
return 1; return (1);
} }
/* key-statements :== key-statement | /* key-statements :== key-statement |