Index: nsswitch/winbindd_pam.c =================================================================== RCS file: /data/cvs/samba/source/nsswitch/winbindd_pam.c,v retrieving revision 1.44.2.23 diff -u -r1.44.2.23 winbindd_pam.c --- nsswitch/winbindd_pam.c 31 Jul 2003 05:43:47 -0000 1.44.2.23 +++ nsswitch/winbindd_pam.c 6 Aug 2003 00:59:28 -0000 @@ -208,9 +208,7 @@ NET_USER_INFO_3 info3; struct cli_state *cli = NULL; TALLOC_CTX *mem_ctx = NULL; - char *user = NULL; - const char *domain = NULL; - const char *workstation; + const char *user, *domain, *workstation; const char *contact_domain; DOM_CRED ret_creds; int attempts = 0; @@ -226,27 +224,19 @@ } /* Ensure null termination */ - state->request.data.auth_crap.user[sizeof(state->request.data.auth_crap.user)-1]='\0'; + state->request.data.auth_crap.user[sizeof(state->request.data.auth_crap.user)-1] = 0; + state->request.data.auth_crap.domain[sizeof(state->request.data.auth_crap.domain)-1] = 0; - /* Ensure null termination */ - state->request.data.auth_crap.domain[sizeof(state->request.data.auth_crap.domain)-1]='\0'; + if (!(mem_ctx = talloc_init("winbind pam auth crap for %s", state->request.data.auth_crap.user))) { + DEBUG(0, ("winbindd_pam_auth_crap: could not talloc_init()!\n")); + result = NT_STATUS_NO_MEMORY; + goto done; + } - if (!(mem_ctx = talloc_init("winbind pam auth crap for (utf8) %s", state->request.data.auth_crap.user))) { - DEBUG(0, ("winbindd_pam_auth_crap: could not talloc_init()!\n")); - result = NT_STATUS_NO_MEMORY; - goto done; - } - - if (pull_utf8_talloc(mem_ctx, &user, state->request.data.auth_crap.user) == (size_t)-1) { - DEBUG(0, ("winbindd_pam_auth_crap: pull_utf8_talloc failed!\n")); - } + user = state->request.data.auth_crap.user; if (*state->request.data.auth_crap.domain) { - char *dom = NULL; - if (pull_utf8_talloc(mem_ctx, &dom, state->request.data.auth_crap.domain) == (size_t)-1) { - DEBUG(0, ("winbindd_pam_auth_crap: pull_utf8_talloc failed!\n")); - } - domain = dom; + domain = state->request.data.auth_crap.domain; } else if (lp_winbind_use_default_domain()) { domain = lp_workgroup(); } else { @@ -264,15 +254,10 @@ goto done; } - if (*state->request.data.auth_crap.workstation) { - char *wrk = NULL; - if (pull_utf8_talloc(mem_ctx, &wrk, state->request.data.auth_crap.workstation) == (size_t)-1) { - DEBUG(0, ("winbindd_pam_auth_crap: pull_utf8_talloc failed!\n")); - } - workstation = wrk; - } else { + if (*state->request.data.auth_crap.workstation) + workstation = state->request.data.auth_crap.workstation; + else workstation = global_myname(); - } if (state->request.data.auth_crap.lm_resp_len > sizeof(state->request.data.auth_crap.lm_resp) || state->request.data.auth_crap.nt_resp_len > sizeof(state->request.data.auth_crap.nt_resp)) {