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:
parent
7e07ec68f1
commit
f30bc6503d
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user