The branch, v3-2-test has been updated via 72c19d114b40ee307bbe45d9828667165a26d7a3 (commit) from d6e2519c67fd015e1089021769de04085fd90894 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test - Log ----------------------------------------------------------------- commit 72c19d114b40ee307bbe45d9828667165a26d7a3 Author: Jeremy Allison <[EMAIL PROTECTED]> Date: Wed Nov 14 10:37:18 2007 -0800 Remove pstring from auth/* Jeremy. ----------------------------------------------------------------------- Summary of changes: source/auth/auth_util.c | 52 +++++++++++++++++++++++++++++++++------------ source/auth/pass_check.c | 7 ++++- 2 files changed, 43 insertions(+), 16 deletions(-) Changeset truncated at 500 lines: diff --git a/source/auth/auth_util.c b/source/auth/auth_util.c index 99eea6c..7ef8942 100644 --- a/source/auth/auth_util.c +++ b/source/auth/auth_util.c @@ -32,20 +32,44 @@ static int smb_create_user(const char *domain, const char *unix_username, const char *homedir) { - pstring add_script; + TALLOC_CTX *ctx = talloc_tos(); + char *add_script; int ret; - pstrcpy(add_script, lp_adduser_script()); - if (! *add_script) + add_script = talloc_strdup(ctx, lp_adduser_script()); + if (!add_script || !*add_script) { return -1; - all_string_sub(add_script, "%u", unix_username, sizeof(pstring)); - if (domain) - all_string_sub(add_script, "%D", domain, sizeof(pstring)); - if (homedir) - all_string_sub(add_script, "%H", homedir, sizeof(pstring)); + } + add_script = talloc_all_string_sub(ctx, + add_script, + "%u", + unix_username); + if (!add_script) { + return -1; + } + if (domain) { + add_script = talloc_all_string_sub(ctx, + add_script, + "%D", + domain); + if (!add_script) { + return -1; + } + } + if (homedir) { + add_script = talloc_all_string_sub(ctx, + add_script, + "%H", + homedir); + if (!add_script) { + return -1; + } + } ret = smbrun(add_script,NULL); flush_pwnam_cache(); - DEBUG(ret ? 0 : 3,("smb_create_user: Running the command `%s' gave %d\n",add_script,ret)); + DEBUG(ret ? 0 : 3, + ("smb_create_user: Running the command `%s' gave %d\n", + add_script,ret)); return ret; } @@ -53,15 +77,15 @@ static int smb_create_user(const char *domain, const char *unix_username, const Create an auth_usersupplied_data structure ****************************************************************************/ -static NTSTATUS make_user_info(auth_usersupplied_info **user_info, - const char *smb_name, +static NTSTATUS make_user_info(auth_usersupplied_info **user_info, + const char *smb_name, const char *internal_username, - const char *client_domain, + const char *client_domain, const char *domain, - const char *wksta_name, + const char *wksta_name, DATA_BLOB *lm_pwd, DATA_BLOB *nt_pwd, DATA_BLOB *lm_interactive_pwd, DATA_BLOB *nt_interactive_pwd, - DATA_BLOB *plaintext, + DATA_BLOB *plaintext, bool encrypted) { diff --git a/source/auth/pass_check.c b/source/auth/pass_check.c index 8773804..27915bf 100644 --- a/source/auth/pass_check.c +++ b/source/auth/pass_check.c @@ -599,7 +599,7 @@ return NT_STATUS_OK on correct match, appropriate error otherwise NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *password, int pwlen, bool (*fn) (const char *, const char *), bool run_cracker) { - pstring pass2; + char *pass2 = NULL; int level = lp_passwordlevel(); NTSTATUS nt_status; @@ -758,7 +758,10 @@ NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *pas } /* make a copy of it */ - pstrcpy(pass2, password); + pass2 = talloc_strdup(talloc_tos(), password); + if (!pass2) { + return NT_STATUS_NO_MEMORY; + } /* try all lowercase if it's currently all uppercase */ if (strhasupper(pass2)) { -- Samba Shared Repository