From: Howard Chu Date: Thu, 20 Jan 2005 00:23:36 +0000 (+0000) Subject: ITS#3495 make sure lutil_passwd_init gets called X-Git-Tag: OPENLDAP_REL_ENG_2_3_BP~311 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3ae4b383d5acac6977ba834ddf9ba77b1d805024;p=openldap ITS#3495 make sure lutil_passwd_init gets called --- diff --git a/libraries/liblutil/passwd.c b/libraries/liblutil/passwd.c index b7f32a08d6..8fe4673aad 100644 --- a/libraries/liblutil/passwd.c +++ b/libraries/liblutil/passwd.c @@ -132,6 +132,7 @@ static LUTIL_PASSWD_HASH_FUNC hash_clear; #endif static struct pw_slist *pw_schemes; +static int pw_inited; static const struct pw_scheme pw_schemes_default[] = { @@ -173,6 +174,8 @@ int lutil_passwd_add( { struct pw_slist *ptr; + if (!pw_inited) lutil_passwd_init(); + ptr = ber_memalloc( sizeof( struct pw_slist )); if (!ptr) return -1; ptr->next = pw_schemes; @@ -187,6 +190,8 @@ void lutil_passwd_init() { struct pw_scheme *s; + pw_inited = 1; + for( s=(struct pw_scheme *)pw_schemes_default; s->name.bv_val; s++) { if ( lutil_passwd_add( &s->name, s->chk_fn, s->hash_fn ) ) break; } @@ -207,7 +212,7 @@ static const struct pw_scheme *get_scheme( { struct pw_slist *pws; - if (!pw_schemes) lutil_passwd_init(); + if (!pw_inited) lutil_passwd_init(); for( pws=pw_schemes; pws; pws=pws->next ) { if( strcasecmp(scheme, pws->s.name.bv_val ) == 0 ) { @@ -287,7 +292,7 @@ lutil_passwd( return -1; } - if (!pw_schemes) lutil_passwd_init(); + if (!pw_inited) lutil_passwd_init(); for( pws=pw_schemes; pws; pws=pws->next ) { if( pws->s.chk_fn ) {