diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/passdb/passdb.c | 14 | ||||
-rw-r--r-- | source3/passdb/sampassdb.c | 9 |
2 files changed, 20 insertions, 3 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index 5b1ff38d2c..3cb083bb76 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -208,7 +208,12 @@ struct smb_passwd *getsmbpwent(void *vp) BOOL add_smbpwd_entry(struct smb_passwd *newpwd) { - return pwdb_ops->add_smbpwd_entry(pwdb_smb_map_names(newpwd)); + struct smb_passwd *mapped = pwdb_smb_map_names(newpwd); + if (mapped) + { + return pwdb_ops->add_smbpwd_entry(mapped); + } + return False; } /************************************************************************ @@ -222,7 +227,12 @@ BOOL add_smbpwd_entry(struct smb_passwd *newpwd) BOOL mod_smbpwd_entry(struct smb_passwd* pwd, BOOL override) { - return pwdb_ops->mod_smbpwd_entry(pwdb_smb_map_names(pwd), override); + struct smb_passwd *mapped = pwdb_smb_map_names(pwd); + if (mapped) + { + return pwdb_ops->mod_smbpwd_entry(mapped, override); + } + return False; } /************************************************************************ diff --git a/source3/passdb/sampassdb.c b/source3/passdb/sampassdb.c index dbfd2aab80..c784f786c5 100644 --- a/source3/passdb/sampassdb.c +++ b/source3/passdb/sampassdb.c @@ -134,10 +134,17 @@ struct sam_passwd *getsam21pwent(void *vp) BOOL mod_sam21pwd_entry(struct sam_passwd* pwd, BOOL override) { + struct sam_passwd *mapped; + DEBUG(10,("mod_sam21pwd_entry: unix user %s rid %d\n", pwd->unix_name, pwd->user_rid)); - return pwdb_ops->mod_sam21pwd_entry(pwdb_sam_map_names(pwd), override); + mapped = pwdb_sam_map_names(pwd); + if (mapped != NULL) + { + return pwdb_ops->mod_sam21pwd_entry(mapped, override); + } + return False; } /************************************************************************ |