1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-04 08:22:08 +03:00

r1388: Adding password history code for ldap backend, based on a patch from

"Jianliang Lu" <j.lu@tiesse.com>. Multi-string attribute changed to
linearised pstring due to ordering issues. A few other changes to
fix race conditions. I will add the tdb backend code next. This code
compiles but has not yet been tested with password history policy
set to greater than zero. Targeted for 3.0.6.
Jeremy.
This commit is contained in:
Jeremy Allison
2004-07-07 22:46:51 +00:00
committed by Gerald (Jerry) Carter
parent f423a63197
commit dd54b2a3c4
8 changed files with 251 additions and 41 deletions

View File

@ -100,6 +100,8 @@ ATTRIB_MAP_ENTRY attrib_map_v30[] = {
{ LDAP_ATTR_MUNGED_DIAL, "sambaMungedDial" },
{ LDAP_ATTR_BAD_PASSWORD_COUNT, "sambaBadPasswordCount" },
{ LDAP_ATTR_BAD_PASSWORD_TIME, "sambaBadPasswordTime" },
{ LDAP_ATTR_PWD_HISTORY, "sambaPasswordHistory" },
{ LDAP_ATTR_MOD_TIMESTAMP, "modifyTimestamp" },
{ LDAP_ATTR_LIST_END, NULL }
};
@ -345,19 +347,19 @@ static BOOL fetch_ldap_pw(char **dn, char** pw)
/* sanity checks on the mod values */
if (attribute == NULL || *attribute == '\0')
if (attribute == NULL || *attribute == '\0') {
return;
}
#if 0 /* commented out after discussion with abartlet. Do not reenable.
left here so other so re-add similar code --jerry */
if (value == NULL || *value == '\0')
return;
#endif
if (mods == NULL)
{
if (mods == NULL) {
mods = (LDAPMod **) malloc(sizeof(LDAPMod *));
if (mods == NULL)
{
if (mods == NULL) {
DEBUG(0, ("make_a_mod: out of memory!\n"));
return;
}
@ -369,17 +371,14 @@ static BOOL fetch_ldap_pw(char **dn, char** pw)
break;
}
if (mods[i] == NULL)
{
if (mods[i] == NULL) {
mods = (LDAPMod **) Realloc (mods, (i + 2) * sizeof (LDAPMod *));
if (mods == NULL)
{
if (mods == NULL) {
DEBUG(0, ("make_a_mod: out of memory!\n"));
return;
}
mods[i] = (LDAPMod *) malloc(sizeof(LDAPMod));
if (mods[i] == NULL)
{
if (mods[i] == NULL) {
DEBUG(0, ("make_a_mod: out of memory!\n"));
return;
}
@ -389,8 +388,7 @@ static BOOL fetch_ldap_pw(char **dn, char** pw)
mods[i + 1] = NULL;
}
if (value != NULL)
{
if (value != NULL) {
char *utf8_value = NULL;
j = 0;