From f35157f39293f9fa240a28642c41708b55d301c8 Mon Sep 17 00:00:00 2001 From: Jean-François Micouleau Date: Fri, 4 May 2001 15:44:27 +0000 Subject: Big cleanup of passdb and backends. I did some basic tests but I have probably broken something. Notably the password changing. So don't cry ;-) J.F. (This used to be commit a4a4c02b12f030a3b9e6225b999c90689dfc4719) --- source3/utils/smbpasswd.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'source3/utils/smbpasswd.c') diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c index 8ddd07a4c5..2131ea0d8f 100644 --- a/source3/utils/smbpasswd.c +++ b/source3/utils/smbpasswd.c @@ -412,10 +412,15 @@ static int process_root(int argc, char *argv[]) */ if(local_flags & LOCAL_ENABLE_USER) { - SAM_ACCOUNT *sampass = pdb_getsampwnam(user_name); - if((sampass != NULL) && (pdb_get_lanman_passwd(sampass) != NULL)) { + SAM_ACCOUNT *sampass = NULL; + BOOL ret; + + pdb_init_sam(&sampass); + ret = pdb_getsampwnam(sampass, user_name); + if((sampass != False) && (pdb_get_lanman_passwd(sampass) != NULL)) { new_passwd = xstrdup("XXXX"); /* Don't care. */ } + pdb_clear_sam(sampass); } if(!new_passwd) @@ -434,13 +439,19 @@ static int process_root(int argc, char *argv[]) } if(!(local_flags & (LOCAL_ADD_USER|LOCAL_DISABLE_USER|LOCAL_ENABLE_USER|LOCAL_DELETE_USER|LOCAL_SET_NO_PASSWORD))) { - SAM_ACCOUNT *sampass = pdb_getsampwnam(user_name); + SAM_ACCOUNT *sampass = NULL; + BOOL ret; + + pdb_init_sam(&sampass); + ret = pdb_getsampwnam(sampass, user_name); + printf("Password changed for user %s.", user_name ); - if( (sampass != NULL) && (pdb_get_acct_ctrl(sampass)&ACB_DISABLED) ) + if( (ret != False) && (pdb_get_acct_ctrl(sampass)&ACB_DISABLED) ) printf(" User has disabled flag set."); - if((sampass != NULL) && (pdb_get_acct_ctrl(sampass) & ACB_PWNOTREQ) ) + if((ret != False) && (pdb_get_acct_ctrl(sampass) & ACB_PWNOTREQ) ) printf(" User has no password flag set."); printf("\n"); + pdb_clear_sam(sampass); } done: -- cgit