summaryrefslogtreecommitdiff
path: root/source3/utils
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2003-08-12 00:46:15 +0000
committerTim Potter <tpot@samba.org>2003-08-12 00:46:15 +0000
commitdffd0f379fdbb74533ceab18d199302f3b15a7c9 (patch)
tree07fe79a13ddd865a2fa1b2010525e6bda2fe0557 /source3/utils
parent102de75a7ca4055dee21610061429e100cfc5699 (diff)
downloadsamba-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.c20
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));