+3954. [bug] Unchecked mutex init in dlz_dlopen_driver.c [RT #37112]
+
3953. [bug] Don't escape semi-colon in TXT fields. [RT #37159]
3952. [bug] dns_name_fullcompare failed to set *nlabelsp when the
triedload = ISC_TRUE;
/* Initialize the lock */
- isc_mutex_init(&cd->lock);
+ result = isc_mutex_init(&cd->lock);
+ if (result != ISC_R_SUCCESS)
+ goto failed;
/* Open the library */
cd->dl_handle = LoadLibraryA(cd->dl_path);
"dlz_dlopen failed to open library '%s' - %u",
cd->dl_path, error);
result = ISC_R_FAILURE;
- goto failed;
+ goto cleanup_lock;
}
/* Find the symbols */
{
/* We're missing a required symbol */
result = ISC_R_FAILURE;
- goto failed;
+ goto cleanup_lock;
}
cd->dlz_allowzonexfr = (dlz_dlopen_allowzonexfr_t *)
"should be %d in '%s'",
cd->version, DLZ_DLOPEN_VERSION, cd->dl_path);
result = ISC_R_FAILURE;
- goto failed;
+ goto cleanup_lock;
}
/*
NULL);
MAYBE_UNLOCK(cd);
if (result != ISC_R_SUCCESS)
- goto failed;
+ goto cleanup_lock;
*dbdata = cd;
return (ISC_R_SUCCESS);
+cleanup_lock:
+ DESTROYLOCK(&cd->lock);
failed:
dlopen_log(ISC_LOG_ERROR, "dlz_dlopen of '%s' failed", dlzname);
if (cd->dl_path)
if (cd->dl_handle)
FreeLibrary(cd->dl_handle);
- (void) isc_mutex_destroy(&cd->lock);
+ DESTROYLOCK(&cd->lock);
mctx = cd->mctx;
isc_mem_put(mctx, cd, sizeof(*cd));