mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 14:07:59 +00:00
731. [bug] certian zone errors could cause named-checkzone to
fail ungracefully. [RT #819]
This commit is contained in:
2
CHANGES
2
CHANGES
@@ -1,3 +1,5 @@
|
|||||||
|
731. [bug] certian zone errors could cause named-checkzone to
|
||||||
|
fail ungracefully. [RT #819]
|
||||||
|
|
||||||
730. [bug] lwres_getaddrinfo() returns the correct result when
|
730. [bug] lwres_getaddrinfo() returns the correct result when
|
||||||
it fails to contact a server. [RT #768]
|
it fails to contact a server. [RT #768]
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: master.c,v 1.105 2001/02/07 13:24:19 marka Exp $ */
|
/* $Id: master.c,v 1.106 2001/02/08 01:52:33 marka Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -130,8 +130,8 @@ static isc_result_t
|
|||||||
pushfile(const char *master_file, dns_name_t *origin, dns_loadctx_t **ctxp);
|
pushfile(const char *master_file, dns_name_t *origin, dns_loadctx_t **ctxp);
|
||||||
|
|
||||||
static isc_result_t
|
static isc_result_t
|
||||||
commit(dns_rdatacallbacks_t *, isc_lex_t *, rdatalist_head_t *, dns_name_t *,
|
commit(dns_rdatacallbacks_t *, dns_loadctx_t *, rdatalist_head_t *,
|
||||||
dns_name_t *);
|
dns_name_t *, dns_name_t *);
|
||||||
|
|
||||||
static isc_boolean_t
|
static isc_boolean_t
|
||||||
is_glue(rdatalist_head_t *, dns_name_t *);
|
is_glue(rdatalist_head_t *, dns_name_t *);
|
||||||
@@ -184,14 +184,14 @@ loadctx_destroy(dns_loadctx_t *ctx);
|
|||||||
|
|
||||||
#define COMMITALL \
|
#define COMMITALL \
|
||||||
do { \
|
do { \
|
||||||
result = commit(callbacks, ctx->lex, ¤t_list, \
|
result = commit(callbacks, ctx, ¤t_list, \
|
||||||
ctx->current, ctx->top); \
|
ctx->current, ctx->top); \
|
||||||
if (MANYERRS(ctx, result)) { \
|
if (MANYERRS(ctx, result)) { \
|
||||||
SETRESULT(ctx, result); \
|
SETRESULT(ctx, result); \
|
||||||
LOGIT(result); \
|
LOGIT(result); \
|
||||||
} else if (result != ISC_R_SUCCESS) \
|
} else if (result != ISC_R_SUCCESS) \
|
||||||
goto log_and_cleanup; \
|
goto log_and_cleanup; \
|
||||||
result = commit(callbacks, ctx->lex, &glue_list, \
|
result = commit(callbacks, ctx, &glue_list, \
|
||||||
ctx->glue, ctx->top); \
|
ctx->glue, ctx->top); \
|
||||||
if (MANYERRS(ctx, result)) { \
|
if (MANYERRS(ctx, result)) { \
|
||||||
SETRESULT(ctx, result); \
|
SETRESULT(ctx, result); \
|
||||||
@@ -644,8 +644,7 @@ generate(dns_loadctx_t *ctx, char *range, char *lhs, char *gtype, char *rhs) {
|
|||||||
rdatalist.ttl = ctx->ttl;
|
rdatalist.ttl = ctx->ttl;
|
||||||
ISC_LIST_PREPEND(head, &rdatalist, link);
|
ISC_LIST_PREPEND(head, &rdatalist, link);
|
||||||
ISC_LIST_APPEND(rdatalist.rdata, &rdata, link);
|
ISC_LIST_APPEND(rdatalist.rdata, &rdata, link);
|
||||||
result = commit(callbacks, ctx->lex, &head, owner,
|
result = commit(callbacks, ctx, &head, owner, ctx->top);
|
||||||
ctx->top);
|
|
||||||
ISC_LIST_UNLINK(rdatalist.rdata, &rdata, link);
|
ISC_LIST_UNLINK(rdatalist.rdata, &rdata, link);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS)
|
||||||
goto error_cleanup;
|
goto error_cleanup;
|
||||||
@@ -1086,8 +1085,7 @@ load(dns_loadctx_t **ctxp) {
|
|||||||
*/
|
*/
|
||||||
if (ctx->glue != NULL &&
|
if (ctx->glue != NULL &&
|
||||||
dns_name_compare(ctx->glue, new_name) != 0) {
|
dns_name_compare(ctx->glue, new_name) != 0) {
|
||||||
result = commit(callbacks, ctx->lex,
|
result = commit(callbacks, ctx, &glue_list,
|
||||||
&glue_list,
|
|
||||||
ctx->glue, ctx->top);
|
ctx->glue, ctx->top);
|
||||||
if (MANYERRS(ctx, result)) {
|
if (MANYERRS(ctx, result)) {
|
||||||
SETRESULT(ctx, result);
|
SETRESULT(ctx, result);
|
||||||
@@ -1123,7 +1121,7 @@ load(dns_loadctx_t **ctxp) {
|
|||||||
ctx->in_use[ctx->glue_in_use] =
|
ctx->in_use[ctx->glue_in_use] =
|
||||||
ISC_TRUE;
|
ISC_TRUE;
|
||||||
} else {
|
} else {
|
||||||
result = commit(callbacks, ctx->lex,
|
result = commit(callbacks, ctx,
|
||||||
¤t_list,
|
¤t_list,
|
||||||
ctx->current,
|
ctx->current,
|
||||||
ctx->top);
|
ctx->top);
|
||||||
@@ -1449,14 +1447,13 @@ load(dns_loadctx_t **ctxp) {
|
|||||||
/*
|
/*
|
||||||
* Commit what has not yet been committed.
|
* Commit what has not yet been committed.
|
||||||
*/
|
*/
|
||||||
result = commit(callbacks, ctx->lex, ¤t_list,
|
result = commit(callbacks, ctx, ¤t_list, ctx->current, ctx->top);
|
||||||
ctx->current, ctx->top);
|
|
||||||
if (MANYERRS(ctx, result)) {
|
if (MANYERRS(ctx, result)) {
|
||||||
SETRESULT(ctx, result);
|
SETRESULT(ctx, result);
|
||||||
LOGIT(result);
|
LOGIT(result);
|
||||||
} else if (result != ISC_R_SUCCESS)
|
} else if (result != ISC_R_SUCCESS)
|
||||||
goto log_and_cleanup;
|
goto log_and_cleanup;
|
||||||
result = commit(callbacks, ctx->lex, &glue_list, ctx->glue, ctx->top);
|
result = commit(callbacks, ctx, &glue_list, ctx->glue, ctx->top);
|
||||||
if (MANYERRS(ctx, result)) {
|
if (MANYERRS(ctx, result)) {
|
||||||
SETRESULT(ctx, result);
|
SETRESULT(ctx, result);
|
||||||
LOGIT(result);
|
LOGIT(result);
|
||||||
@@ -1869,7 +1866,7 @@ grow_rdata(int new_len, dns_rdata_t *old, int old_len,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static isc_result_t
|
static isc_result_t
|
||||||
commit(dns_rdatacallbacks_t *callbacks, isc_lex_t *lex,
|
commit(dns_rdatacallbacks_t *callbacks, dns_loadctx_t *ctx,
|
||||||
rdatalist_head_t *head, dns_name_t *owner, dns_name_t *top)
|
rdatalist_head_t *head, dns_name_t *owner, dns_name_t *top)
|
||||||
{
|
{
|
||||||
dns_rdatalist_t *this;
|
dns_rdatalist_t *this;
|
||||||
@@ -1888,8 +1885,8 @@ commit(dns_rdatacallbacks_t *callbacks, isc_lex_t *lex,
|
|||||||
"%s: %s:%lu: "
|
"%s: %s:%lu: "
|
||||||
"ignoring out-of-zone data",
|
"ignoring out-of-zone data",
|
||||||
"dns_master_load",
|
"dns_master_load",
|
||||||
isc_lex_getsourcename(lex),
|
isc_lex_getsourcename(ctx->lex),
|
||||||
isc_lex_getsourceline(lex) - 1);
|
isc_lex_getsourceline(ctx->lex) - 1);
|
||||||
ignore = ISC_TRUE;
|
ignore = ISC_TRUE;
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@@ -1900,7 +1897,9 @@ commit(dns_rdatacallbacks_t *callbacks, isc_lex_t *lex,
|
|||||||
result = ((*callbacks->add)(callbacks->add_private,
|
result = ((*callbacks->add)(callbacks->add_private,
|
||||||
owner,
|
owner,
|
||||||
&dataset));
|
&dataset));
|
||||||
if (result != ISC_R_SUCCESS)
|
if (MANYERRS(ctx, result))
|
||||||
|
SETRESULT(ctx, result);
|
||||||
|
else if (result != ISC_R_SUCCESS)
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
ISC_LIST_UNLINK(*head, this, link);
|
ISC_LIST_UNLINK(*head, this, link);
|
||||||
|
Reference in New Issue
Block a user