diff options
author | Andrew Bartlett <abartlet@samba.org> | 2005-12-19 23:29:47 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2005-12-19 23:29:47 +0000 |
commit | 191d63a361f4b7a597984ceca7c1409bd761c17d (patch) | |
tree | 82d7fead0b2b2569d8a7f83936d81afe5443c674 /source | |
parent | 92fd8c24281dc749e28a91276b5ce3332326b49c (diff) | |
download | samba-191d63a361f4b7a597984ceca7c1409bd761c17d.tar.gz samba-191d63a361f4b7a597984ceca7c1409bd761c17d.tar.xz samba-191d63a361f4b7a597984ceca7c1409bd761c17d.zip |
r12381: Try not to segfault on an anonymous LDAP bind, and map to a guest login.
Andrew Bartlett
Diffstat (limited to 'source')
-rw-r--r-- | source/dsdb/samdb/cracknames.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/source/dsdb/samdb/cracknames.c b/source/dsdb/samdb/cracknames.c index 977f992c08a..2ea93acc325 100644 --- a/source/dsdb/samdb/cracknames.c +++ b/source/dsdb/samdb/cracknames.c @@ -692,7 +692,7 @@ static WERROR DsCrackNameOneFilter(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ const struct dom_sid *sid = samdb_result_dom_sid(mem_ctx, result_res[0], "objectSid"); const char *_acc = "", *_dom = ""; - if ((sid->num_auths < 4) || (sid->num_auths > 5)) { + if (!sid || (sid->num_auths < 4) || (sid->num_auths > 5)) { info1->status = DRSUAPI_DS_NAME_STATUS_NO_MAPPING; return WERR_OK; } @@ -905,7 +905,13 @@ NTSTATUS crack_dn_to_nt4_name(TALLOC_CTX *mem_ctx, struct drsuapi_DsNameInfo1 info1; struct ldb_context *ldb; char *p; - + + /* Handle anonymous bind */ + if (!dn || !*dn) { + *nt4_domain = ""; + *nt4_account = ""; + } + ldb = samdb_connect(mem_ctx, system_session(mem_ctx)); if (ldb == NULL) { return NT_STATUS_INTERNAL_DB_CORRUPTION; |