mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-09 22:04:12 -05:00
Fix --disable-crypt and --disable-cleartext
mutex declaration should be moved from slapd/main.c to slapd/init.c so we don't have ripple changes through slapd/tools.
This commit is contained in:
parent
bfb27120be
commit
695508813d
13 changed files with 58 additions and 16 deletions
|
|
@ -155,12 +155,15 @@ gen_pass (unsigned int len)
|
|||
return ((char *)salt.salt);
|
||||
}
|
||||
|
||||
#ifdef SLAPD_CLEARTEXT
|
||||
char *
|
||||
hash_none (const char *pw_in, Salt * salt)
|
||||
{
|
||||
return (STRDUP (pw_in));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef SLAPD_CRYPT
|
||||
char *
|
||||
hash_crypt (const char *pw_in, Salt * salt)
|
||||
{
|
||||
|
|
@ -189,6 +192,7 @@ hash_crypt (const char *pw_in, Salt * salt)
|
|||
}
|
||||
return (STRDUP (crypted_pw));
|
||||
}
|
||||
#endif
|
||||
|
||||
char *
|
||||
hash_md5 (const char *pw_in, Salt * salt)
|
||||
|
|
@ -222,8 +226,12 @@ hash_sha1 (const char *pw_in, Salt * salt)
|
|||
|
||||
static Hash hashes[] =
|
||||
{
|
||||
#ifdef SLAPD_CLEARTEXT
|
||||
{"none", 4, hash_none, 0, HASHTYPE_NONE, HASHTYPE_NONE, 0},
|
||||
#endif
|
||||
#ifdef SLAPD_CRYPT
|
||||
{"crypt", 5, hash_crypt, 1, HASHTYPE_CRYPT, HASHTYPE_CRYPT, 2},
|
||||
#endif
|
||||
{"md5", 3, hash_md5, 0, HASHTYPE_MD5, HASHTYPE_SMD5, 0},
|
||||
{"smd5", 4, hash_md5, 1, HASHTYPE_SMD5, HASHTYPE_SMD5, 4},
|
||||
{"sha", 3, hash_sha1, 0, HASHTYPE_SHA1, HASHTYPE_SSHA1, 0},
|
||||
|
|
|
|||
|
|
@ -31,12 +31,7 @@ lutil_passwd(
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (strncasecmp(passwd, "{CRYPT}", sizeof("{CRYPT}") - 1) == 0 ) {
|
||||
const char *p = passwd + (sizeof("{CRYPT}") - 1);
|
||||
|
||||
return( strcmp(p, crypt(cred, p)) );
|
||||
|
||||
} else if (strncasecmp(passwd, "{MD5}", sizeof("{MD5}") - 1) == 0 ) {
|
||||
if (strncasecmp(passwd, "{MD5}", sizeof("{MD5}") - 1) == 0 ) {
|
||||
lutil_MD5_CTX MD5context;
|
||||
unsigned char MD5digest[16];
|
||||
char base64digest[25]; /* ceiling(sizeof(input)/3) * 4 + 1 */
|
||||
|
|
@ -74,6 +69,14 @@ lutil_passwd(
|
|||
}
|
||||
|
||||
return( strcmp(p, base64digest) );
|
||||
|
||||
#ifdef SLAPD_CRYPT
|
||||
} else if (strncasecmp(passwd, "{CRYPT}", sizeof("{CRYPT}") - 1) == 0 ) {
|
||||
const char *p = passwd + (sizeof("{CRYPT}") - 1);
|
||||
|
||||
return( strcmp(p, crypt(cred, p)) );
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef SLAPD_CLEARTEXT
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@
|
|||
extern int krbv4_ldap_auth();
|
||||
#endif
|
||||
|
||||
pthread_mutex_t crypt_mutex;
|
||||
|
||||
static int
|
||||
crypted_value_find(
|
||||
struct berval **vals,
|
||||
|
|
@ -35,13 +33,17 @@ crypted_value_find(
|
|||
if ( syntax != SYNTAX_BIN ) {
|
||||
int result;
|
||||
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_lock( &crypt_mutex );
|
||||
#endif
|
||||
|
||||
result = lutil_passwd(
|
||||
(char*) cred->bv_val,
|
||||
(char*) vals[i]->bv_val);
|
||||
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_unlock( &crypt_mutex );
|
||||
#endif
|
||||
|
||||
return result;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,6 @@ ldbm_back_init(
|
|||
char *argv[ 4 ];
|
||||
int i;
|
||||
|
||||
#ifdef SLAPD_CRYPT
|
||||
extern pthread_mutex_t crypt_mutex;
|
||||
#endif /* SLAPD_CRYPT */
|
||||
|
||||
/* allocate backend-specific stuff */
|
||||
li = (struct ldbminfo *) ch_calloc( 1, sizeof(struct ldbminfo) );
|
||||
|
||||
|
|
@ -70,9 +66,6 @@ ldbm_back_init(
|
|||
pthread_mutex_init( &li->li_cache.c_mutex, pthread_mutexattr_default );
|
||||
pthread_mutex_init( &li->li_nextid_mutex, pthread_mutexattr_default );
|
||||
pthread_mutex_init( &li->li_dbcache_mutex, pthread_mutexattr_default );
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_init( &crypt_mutex, pthread_mutexattr_default );
|
||||
#endif /* SLAPD_CRYPT */
|
||||
pthread_cond_init( &li->li_dbcache_cv, pthread_condattr_default );
|
||||
for ( i = 0; i < MAXDBCACHE; i++ ) {
|
||||
pthread_mutex_init( &li->li_dbcache[i].dbc_mutex,
|
||||
|
|
|
|||
|
|
@ -210,11 +210,23 @@ be_isroot( Backend *be, char *dn )
|
|||
int
|
||||
be_isroot_pw( Backend *be, char *dn, struct berval *cred )
|
||||
{
|
||||
int result;
|
||||
|
||||
if ( ! be_isroot( be, dn ) ) {
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
return( lutil_passwd( cred->bv_val, be->be_rootpw ) == 0 );
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_lock( &crypt_mutex );
|
||||
#endif
|
||||
|
||||
result = lutil_passwd( cred->bv_val, be->be_rootpw );
|
||||
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_unlock( &crypt_mutex );
|
||||
#endif
|
||||
|
||||
return result == 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -21,4 +21,7 @@ init( void )
|
|||
pthread_mutex_init( &replog_mutex, pthread_mutexattr_default );
|
||||
pthread_mutex_init( &ops_mutex, pthread_mutexattr_default );
|
||||
pthread_mutex_init( &num_sent_mutex, pthread_mutexattr_default );
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_init( &crypt_mutex, pthread_mutexattr_default );
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,9 @@ pthread_mutex_t currenttime_mutex;
|
|||
int active_threads;
|
||||
pthread_mutex_t active_threads_mutex;
|
||||
pthread_mutex_t new_conn_mutex;
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_t crypt_mutex;
|
||||
#endif
|
||||
long ops_initiated;
|
||||
long ops_completed;
|
||||
int num_conns;
|
||||
|
|
|
|||
|
|
@ -248,6 +248,9 @@ extern pthread_mutex_t new_conn_mutex;
|
|||
extern pthread_mutex_t num_sent_mutex;
|
||||
extern pthread_mutex_t ops_mutex;
|
||||
extern pthread_mutex_t replog_mutex;
|
||||
#ifdef SLAPD_CRYPT
|
||||
extern pthread_mutex_t crypt_mutex;
|
||||
#endif
|
||||
extern pthread_t listener_tid;
|
||||
extern struct acl *global_acl;
|
||||
extern struct objclass *global_oc;
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@ pthread_mutex_t currenttime_mutex;
|
|||
pthread_mutex_t replog_mutex;
|
||||
pthread_mutex_t ops_mutex;
|
||||
pthread_mutex_t regex_mutex;
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_t crypt_mutex;
|
||||
#endif
|
||||
|
||||
int
|
||||
main( int argc, char **argv )
|
||||
|
|
|
|||
|
|
@ -34,6 +34,9 @@ pthread_mutex_t currenttime_mutex;
|
|||
pthread_mutex_t replog_mutex;
|
||||
pthread_mutex_t ops_mutex;
|
||||
pthread_mutex_t regex_mutex;
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_t crypt_mutex;
|
||||
#endif
|
||||
|
||||
static char *tailorfile;
|
||||
static char *inputfile;
|
||||
|
|
|
|||
|
|
@ -31,6 +31,9 @@ pthread_mutex_t currenttime_mutex;
|
|||
pthread_mutex_t replog_mutex;
|
||||
pthread_mutex_t ops_mutex;
|
||||
pthread_mutex_t regex_mutex;
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_t crypt_mutex;
|
||||
#endif
|
||||
|
||||
static char *tailorfile;
|
||||
static char *inputfile;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ pthread_mutex_t currenttime_mutex;
|
|||
pthread_mutex_t replog_mutex;
|
||||
pthread_mutex_t ops_mutex;
|
||||
pthread_mutex_t regex_mutex;
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_t crypt_mutex;
|
||||
#endif
|
||||
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -37,6 +37,9 @@ pthread_mutex_t currenttime_mutex;
|
|||
pthread_mutex_t replog_mutex;
|
||||
pthread_mutex_t ops_mutex;
|
||||
pthread_mutex_t regex_mutex;
|
||||
#ifdef SLAPD_CRYPT
|
||||
pthread_mutex_t crypt_mutex;
|
||||
#endif
|
||||
|
||||
static void fork_child( char *prog, char *args[] );
|
||||
static void wait4kids( int nkidval );
|
||||
|
|
|
|||
Loading…
Reference in a new issue