mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 23:25:38 +00:00
4618. [bug] Check isc_mem_strdup results in dns_view_setnewzones.
Add logging for lmdb call failures. [RT #45204]
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
4618. [bug] Check isc_mem_strdup results in dns_view_setnewzones.
|
||||||
|
Add logging for lmdb call failures. [RT #45204]
|
||||||
|
|
||||||
4617. [test] Update rndc system test to be more delay tolerant.
|
4617. [test] Update rndc system test to be more delay tolerant.
|
||||||
[RT #45177]
|
[RT #45177]
|
||||||
|
|
||||||
|
@@ -2082,17 +2082,31 @@ dns_view_setnewzones(dns_view_t *view, isc_boolean_t allow, void *cfgctx,
|
|||||||
buffer, sizeof(buffer));
|
buffer, sizeof(buffer));
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
view->new_zone_file = isc_mem_strdup(view->mctx, buffer);
|
view->new_zone_file = isc_mem_strdup(view->mctx, buffer);
|
||||||
|
if (view->new_zone_file == NULL) {
|
||||||
|
result = ISC_R_NOMEMORY;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LMDB
|
#ifdef HAVE_LMDB
|
||||||
result = nz_legacy(view->new_zone_dir, view->name, "nzd",
|
result = nz_legacy(view->new_zone_dir, view->name, "nzd",
|
||||||
buffer, sizeof(buffer));
|
buffer, sizeof(buffer));
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
view->new_zone_db = isc_mem_strdup(view->mctx, buffer);
|
view->new_zone_db = isc_mem_strdup(view->mctx, buffer);
|
||||||
|
if (view->new_zone_db == NULL) {
|
||||||
|
result = ISC_R_NOMEMORY;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
status = mdb_env_create(&env);
|
status = mdb_env_create(&env);
|
||||||
if (status != 0) {
|
if (status != 0) {
|
||||||
|
isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
|
||||||
|
ISC_LOGMODULE_OTHER, ISC_LOG_ERROR,
|
||||||
|
"mdb_env_create failed: %s",
|
||||||
|
mdb_strerror(status));
|
||||||
result = ISC_R_FAILURE;
|
result = ISC_R_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@@ -2100,6 +2114,10 @@ dns_view_setnewzones(dns_view_t *view, isc_boolean_t allow, void *cfgctx,
|
|||||||
if (mapsize != 0ULL) {
|
if (mapsize != 0ULL) {
|
||||||
status = mdb_env_set_mapsize(env, mapsize);
|
status = mdb_env_set_mapsize(env, mapsize);
|
||||||
if (status != 0) {
|
if (status != 0) {
|
||||||
|
isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
|
||||||
|
ISC_LOGMODULE_OTHER, ISC_LOG_ERROR,
|
||||||
|
"mdb_env_set_mapsize failed: %s",
|
||||||
|
mdb_strerror(status));
|
||||||
result = ISC_R_FAILURE;
|
result = ISC_R_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@@ -2108,6 +2126,10 @@ dns_view_setnewzones(dns_view_t *view, isc_boolean_t allow, void *cfgctx,
|
|||||||
status = mdb_env_open(env, view->new_zone_db,
|
status = mdb_env_open(env, view->new_zone_db,
|
||||||
MDB_NOSUBDIR|MDB_CREATE, 0600);
|
MDB_NOSUBDIR|MDB_CREATE, 0600);
|
||||||
if (status != 0) {
|
if (status != 0) {
|
||||||
|
isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
|
||||||
|
ISC_LOGMODULE_OTHER, ISC_LOG_ERROR,
|
||||||
|
"mdb_env_open of '%s' failed: %s",
|
||||||
|
view->new_zone_db, mdb_strerror(status));
|
||||||
result = ISC_R_FAILURE;
|
result = ISC_R_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user