diff options
author | Simo Sorce <idra@samba.org> | 2007-09-10 19:14:22 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:30:38 -0500 |
commit | 6316a9c14d8bc467c84c1604248a9e30abaacd2f (patch) | |
tree | 5d7ddcc4851da4affe37729acc7f11010ec167c9 /source/nsswitch | |
parent | 1850d1c10f1fe77402e0ed79d6980d55d90637fb (diff) | |
download | samba-6316a9c14d8bc467c84c1604248a9e30abaacd2f.tar.gz samba-6316a9c14d8bc467c84c1604248a9e30abaacd2f.tar.xz samba-6316a9c14d8bc467c84c1604248a9e30abaacd2f.zip |
r25063: Fix segfault in smbldp_set_creds when we want to use anonymous, the
code was not passing in the "anon" flag correctly and was passing
NULL pointers.
Diffstat (limited to 'source/nsswitch')
-rw-r--r-- | source/nsswitch/idmap_ldap.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/nsswitch/idmap_ldap.c b/source/nsswitch/idmap_ldap.c index 7f0747068bc..3e6e65727e3 100644 --- a/source/nsswitch/idmap_ldap.c +++ b/source/nsswitch/idmap_ldap.c @@ -78,6 +78,7 @@ static NTSTATUS get_credentials( TALLOC_CTX *mem_ctx, char *secret = NULL; const char *tmp = NULL; char *user_dn = NULL; + bool anon = false; /* assume anonymous if we don't have a specified user */ @@ -106,7 +107,7 @@ static NTSTATUS get_credentials( TALLOC_CTX *mem_ctx, if (!fetch_ldap_pw(&user_dn, &secret)) { DEBUG(2, ("get_credentials: Failed to lookup ldap " "bind creds. Using anonymous connection.\n")); - *dn = talloc_strdup(mem_ctx, ""); + anon = true; } else { *dn = talloc_strdup(mem_ctx, user_dn); SAFE_FREE( user_dn ); @@ -114,10 +115,10 @@ static NTSTATUS get_credentials( TALLOC_CTX *mem_ctx, } } - smbldap_set_creds(ldap_state, false, *dn, secret); + smbldap_set_creds(ldap_state, anon, *dn, secret); ret = NT_STATUS_OK; - done: +done: SAFE_FREE(secret); return ret; |