1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

Fix a handle leak for error returns in ldb_try_load_dso

Coverity ID 464
(cherry picked from commit 496d44d2f2)
This commit is contained in:
Volker Lendecke 2008-06-13 16:05:31 +02:00
parent 7e07ec68f1
commit f30bc6503d

View File

@ -206,6 +206,7 @@ int ldb_try_load_dso(struct ldb_context *ldb, const char *name)
void *handle;
int (*init_fn) (void);
char *modulesdir;
int ret;
#ifdef HAVE_DLOPEN
if (getenv("LD_LDB_MODULE_PATH") != NULL) {
@ -234,12 +235,17 @@ int ldb_try_load_dso(struct ldb_context *ldb, const char *name)
if (init_fn == NULL) {
ldb_debug(ldb, LDB_DEBUG_ERROR, "no symbol `init_module' found in %s: %s\n", path, dlerror());
dlclose(handle);
return -1;
}
talloc_free(path);
return init_fn();
ret = init_fn();
if (ret == -1) {
dlclose(handle);
}
return ret;
#else
ldb_debug(ldb, LDB_DEBUG_TRACE, "no dlopen() - not trying to load %s module\n", name);
return -1;