[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-2569-g496d44d

Volker Lendecke vlendec at samba.org
Fri Jun 13 14:13:17 GMT 2008


The branch, v3-2-test has been updated
       via  496d44d2f21661c85bf07e8eb7cae6298fefd900 (commit)
      from  999533c0ccced59141d8baff5bc248d63e2a966f (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 496d44d2f21661c85bf07e8eb7cae6298fefd900
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Jun 13 16:05:31 2008 +0200

    Fix a handle leak for error returns in ldb_try_load_dso
    
    Coverity ID 464

-----------------------------------------------------------------------

Summary of changes:
 source/lib/ldb/common/ldb_modules.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/lib/ldb/common/ldb_modules.c b/source/lib/ldb/common/ldb_modules.c
index 68c4535..d898f3d 100644
--- a/source/lib/ldb/common/ldb_modules.c
+++ b/source/lib/ldb/common/ldb_modules.c
@@ -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;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list