summaryrefslogtreecommitdiff
path: root/source3/nsswitch
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2007-05-03 12:28:25 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:19:52 -0500
commitb48096e54618218d7484e70066d4f2459d4c172c (patch)
tree0775c0c1e7ed4f7301ce37948fb03774804aaa2a /source3/nsswitch
parentd14e7803e7d024f7f95cbfce330e947ab66e3661 (diff)
downloadsamba-b48096e54618218d7484e70066d4f2459d4c172c.tar.gz
samba-b48096e54618218d7484e70066d4f2459d4c172c.tar.bz2
samba-b48096e54618218d7484e70066d4f2459d4c172c.zip
r22646: segfault fix in idmap_ldap.c from 3_0_25
(This used to be commit 565d7d0b18f18ba11f186667df95bc608a179efa)
Diffstat (limited to 'source3/nsswitch')
-rw-r--r--source3/nsswitch/idmap_ldap.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/source3/nsswitch/idmap_ldap.c b/source3/nsswitch/idmap_ldap.c
index 2fb9a17d3f..45d2b344af 100644
--- a/source3/nsswitch/idmap_ldap.c
+++ b/source3/nsswitch/idmap_ldap.c
@@ -80,11 +80,17 @@ static NTSTATUS get_credentials( TALLOC_CTX *mem_ctx,
tmp = lp_parm_const_string(-1, config_option, "ldap_user_dn", NULL);
if ( tmp ) {
- secret = idmap_fetch_secret("ldap", false, dom->name, tmp);
+ if (!dom) {
+ /* only the alloc backend is allowed to pass in a NULL dom */
+ secret = idmap_fetch_secret("ldap", true, NULL, tmp);
+ } else {
+ secret = idmap_fetch_secret("ldap", false, dom->name, tmp);
+ }
+
if (!secret) {
DEBUG(0, ("get_credentials: Unable to fetch "
"auth credentials for %s in %s\n",
- tmp, dom->name));
+ tmp, (dom==NULL)?"ALLOC":dom->name));
ret = NT_STATUS_ACCESS_DENIED;
goto done;
}