diff options
author | Tim Potter <tpot@samba.org> | 2003-08-12 00:46:15 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2003-08-12 00:46:15 +0000 |
commit | dffd0f379fdbb74533ceab18d199302f3b15a7c9 (patch) | |
tree | 07fe79a13ddd865a2fa1b2010525e6bda2fe0557 /source3/utils | |
parent | 102de75a7ca4055dee21610061429e100cfc5699 (diff) | |
download | samba-dffd0f379fdbb74533ceab18d199302f3b15a7c9.tar.gz samba-dffd0f379fdbb74533ceab18d199302f3b15a7c9.tar.bz2 samba-dffd0f379fdbb74533ceab18d199302f3b15a7c9.zip |
Fix for bug 269. Change wbinfo and ntlm_auth to convert domain, username
and workstation to utf8 before sending the winbindd request. Also, don't
continue when the call to pull_utf8() fails but rather return a winbind
error. (This is what was causing the crash)
(This used to be commit ca1c463360b75538a93b56a87cbb4a6ee7b6cec6)
Diffstat (limited to 'source3/utils')
-rw-r--r-- | source3/utils/ntlm_auth.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/source3/utils/ntlm_auth.c b/source3/utils/ntlm_auth.c index 87f49621f4..1489b78927 100644 --- a/source3/utils/ntlm_auth.c +++ b/source3/utils/ntlm_auth.c @@ -200,10 +200,24 @@ static NTSTATUS contact_winbind_auth_crap(const char *username, request.flags = flags; - fstrcpy(request.data.auth_crap.user, username); + if (push_utf8_fstring(request.data.auth_crap.user, username) == -1) { + *error_string = smb_xstrdup( + "unable to create utf8 string for username"); + return NT_STATUS_UNSUCCESSFUL; + } + + if (push_utf8_fstring(request.data.auth_crap.domain, domain) == -1) { + *error_string = smb_xstrdup( + "unable to create utf8 string for domain"); + return NT_STATUS_UNSUCCESSFUL; + } - fstrcpy(request.data.auth_crap.domain, domain); - fstrcpy(request.data.auth_crap.workstation, workstation); + if (push_utf8_fstring(request.data.auth_crap.workstation, + workstation) == -1) { + *error_string = smb_xstrdup( + "unable to create utf8 string for workstation"); + return NT_STATUS_UNSUCCESSFUL; + } memcpy(request.data.auth_crap.chal, challenge->data, MIN(challenge->length, 8)); |