Get the DOMAIN\username around the right way (I had username\domain...)
authorAndrew Bartlett <abartlet@samba.org>
Tue, 30 Dec 2003 22:27:33 +0000 (22:27 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 30 Dec 2003 22:27:33 +0000 (22:27 +0000)
Push the unix username into utf8 for it's trip across the socket.

Andrew Bartlett
(This used to be commit 3225f262b18bdcf326d3bfd031dac169bd9347c9)

source3/nsswitch/winbindd_pam.c
source3/utils/ntlm_auth.c

index 7c4cb53dbfe71f8bebe14dec432211d8c27a9d61..94f9bf9464a92418f7d462c58f1c68b9e9421c90 100644 (file)
@@ -382,12 +382,12 @@ enum winbindd_result winbindd_pam_auth_crap(struct winbindd_cli_state *state)
                                nt_domain = domain;
                        }
 
-                       fill_domain_username(username_out, nt_username, nt_domain);
+                       fill_domain_username(username_out, nt_domain, nt_username);
 
                        DEBUG(5, ("Setting unix username to [%s]\n", username_out));
 
-                       state->response.extra_data = strdup(username_out);
-                       if (!state->response.extra_data) {
+                       /* this interface is in UTF8 */
+                       if (push_utf8_allocate((char **)&state->response.extra_data, username_out) == -1) {
                                result = NT_STATUS_NO_MEMORY;
                                goto done;
                        }
index bef10b52b34288891184ebc46d35b04fc302d0a0..96e52964b43c65357689d38e34154c726fd25ec7 100644 (file)
@@ -305,7 +305,9 @@ static NTSTATUS contact_winbind_auth_crap(const char *username,
        }
 
        if (flags & WBFLAG_PAM_UNIX_NAME) {
-               *unix_name = response.extra_data;
+               if (pull_utf8_allocate(unix_name, (char *)response.extra_data) == -1) {
+                       return NT_STATUS_NO_MEMORY;
+               }
        }
 
        return nt_status;