Commit 9820da8c authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

A quick fix for ITS#598... crypt(3) crashes

parent 5e4d9d02
......@@ -6,6 +6,7 @@ Changes included in OpenLDAP 1.2.12 Engineering
Fixed ldapsearch uninitialized fp bug
Fixed Pth initialization bug
Fixed libldap/add mod_bvalues typo
Fixed ldappasswd crypt(3) crash (ITD#598)
Build Environment
Remove extra Digital UNIX symbol (ITS#590)
Ignore make clean rm failure
......
......@@ -194,7 +194,11 @@ hash_crypt (const char *pw_in, Salt * salt)
crypted_pw = crypt (pw_in, (char *)lsalt.salt);
free (lsalt.salt);
}
return (STRDUP (crypted_pw));
if( crypted_pw == NULL || crypted_pw[0] = '\0' )
return NULL;
return STRDUP(crypted_pw);
}
#endif
......@@ -283,12 +287,16 @@ modify_dn (LDAP * ld, char *targetdn, char *pwattr, char *oldpw,
hashed_pw = hashes[htype].func (newpw, salt->len ? salt : NULL);
/* return salt back to it's original state */
if (want_salt)
{
if (want_salt) {
free (salt->salt);
salt->salt = NULL;
}
if( hashed_pw == NULL || hashed_pw[0] == '\0' ) {
free( hashed_pw );
return 1;
}
buf = (char *)malloc (hashes[htype].namesz + 3 + strlen (hashed_pw));
if (htype)
sprintf (buf, "{%s}%s", hashes[htype].name, hashed_pw);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment