summaryrefslogtreecommitdiffstats
path: root/source/lib
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-01-12 00:15:46 -0800
committerJeremy Allison <jra@samba.org>2008-01-12 00:15:46 -0800
commit8809eaeb154ea12543455f589e31172dc905d83a (patch)
treead9fb47bb5f1facc4d0171332080199e73cf1bf2 /source/lib
parentc79e9414c4baed6e61fc6a3f766395b873bcc4ea (diff)
downloadsamba-8809eaeb154ea12543455f589e31172dc905d83a.tar.gz
samba-8809eaeb154ea12543455f589e31172dc905d83a.tar.xz
samba-8809eaeb154ea12543455f589e31172dc905d83a.zip
CID 458. Don't leak dlopen handles on failing to load
module. Jeremy.
Diffstat (limited to 'source/lib')
-rw-r--r--source/lib/module.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source/lib/module.c b/source/lib/module.c
index fa06d14b49d..285bd9c4c07 100644
--- a/source/lib/module.c
+++ b/source/lib/module.c
@@ -57,6 +57,7 @@ static NTSTATUS do_smb_load_module(const char *module_name, bool is_probe)
if (error) {
DEBUG(0, ("Error trying to resolve symbol 'init_module' in %s: %s\n",
module_name, error));
+ sys_dlclose(handle);
return NT_STATUS_UNSUCCESSFUL;
}
@@ -66,6 +67,7 @@ static NTSTATUS do_smb_load_module(const char *module_name, bool is_probe)
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("Module '%s' initialization failed: %s\n",
module_name, get_friendly_nt_error_msg(status)));
+ sys_dlclose(handle);
}
return status;