If the call to cd->dlz_create() in dlopen_dlz_create() fails, cd->dbdata may be NULL when dlopen_dlz_destroy() gets called in the cleanup path and passing NULL to the cd->dlz_destroy() callback may cause a NULL dereference. Ensure that does not happen by checking whether cd->dbdata is non-NULL before calling the cd->dlz_destroy() callback.