mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
only call the add_script if the getpwnam_alloc() fails
(This used to be commit c0807e21999ec718d722fc0be6b3353c9369db04)
This commit is contained in:
parent
6760896739
commit
2aa8a05f33
@ -2274,26 +2274,35 @@ NTSTATUS _api_samr_create_user(pipes_struct *p, SAMR_Q_CREATE_USER *q_u, SAMR_R_
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* we can't check both the ending $ and the acb_info.
|
||||
*
|
||||
* UserManager creates trust accounts (ending in $,
|
||||
* normal that hidden accounts) with the acb_info equals to ACB_NORMAL.
|
||||
* JFM, 11/29/2001
|
||||
*/
|
||||
if (account[strlen(account)-1] == '$')
|
||||
pstrcpy(add_script, lp_addmachine_script());
|
||||
else
|
||||
pstrcpy(add_script, lp_adduser_script());
|
||||
|
||||
if (*add_script) {
|
||||
int add_ret;
|
||||
all_string_sub(add_script, "%u", account, sizeof(account));
|
||||
add_ret = smbrun(add_script,NULL);
|
||||
DEBUG(3,("_api_samr_create_user: Running the command `%s' gave %d\n", add_script, add_ret));
|
||||
}
|
||||
|
||||
/* the passdb lookup has failed; check to see if we need to run the
|
||||
add user/machine script */
|
||||
|
||||
pw = getpwnam_alloc(account);
|
||||
|
||||
if ( !pw ) {
|
||||
/*
|
||||
* we can't check both the ending $ and the acb_info.
|
||||
*
|
||||
* UserManager creates trust accounts (ending in $,
|
||||
* normal that hidden accounts) with the acb_info equals to ACB_NORMAL.
|
||||
* JFM, 11/29/2001
|
||||
*/
|
||||
if (account[strlen(account)-1] == '$')
|
||||
pstrcpy(add_script, lp_addmachine_script());
|
||||
else
|
||||
pstrcpy(add_script, lp_adduser_script());
|
||||
|
||||
if (*add_script) {
|
||||
int add_ret;
|
||||
all_string_sub(add_script, "%u", account, sizeof(account));
|
||||
add_ret = smbrun(add_script,NULL);
|
||||
DEBUG(3,("_api_samr_create_user: Running the command `%s' gave %d\n", add_script, add_ret));
|
||||
}
|
||||
|
||||
/* try again */
|
||||
pw = getpwnam_alloc(account);
|
||||
}
|
||||
|
||||
|
||||
if (pw) {
|
||||
nt_status = pdb_init_sam_pw(&sam_pass, pw);
|
||||
|
Loading…
x
Reference in New Issue
Block a user