2424/* $Id$ */
2525
2626#define MODULE "mod_authnz_ibmdb2"
27+ #define RELEASE "2.2.1"
2728
2829#define PCALLOC apr_pcalloc
2930#define SNPRINTF apr_snprintf
@@ -83,10 +84,10 @@ int validate_pw( const char *sent, const char *real )
8384 char md5str [33 ];
8485 unsigned char digest [APR_MD5_DIGESTSIZE ];
8586 apr_md5_ctx_t context ;
86- char * r ;
87+ char * r , * result ;
8788 apr_status_t status ;
8889
89- if ( strlen ( real ) == 32 )
90+ if ( ( strlen ( real ) == 32 ) && ( real [ 0 ] != '$' ) )
9091 {
9192 md5str [0 ] = '\0' ;
9293
@@ -108,9 +109,16 @@ int validate_pw( const char *sent, const char *real )
108109 status = apr_password_validate ( sent , real );
109110
110111 if ( status == APR_SUCCESS )
111- return TRUE;
112+ return TRUE;
112113 else
113- return FALSE;
114+ {
115+ // maybe a different encrypted password (glibc2 crypt)?
116+ result = crypt ( sent , real );
117+ if ( strcmp ( real , result ) == 0 )
118+ return TRUE;
119+ else
120+ return FALSE;
121+ }
114122}
115123/* }}} */
116124
@@ -474,30 +482,12 @@ static const command_rec authnz_ibmdb2_cmds[] =
474482*/
475483static int mod_authnz_ibmdb2_init_handler ( apr_pool_t * p , apr_pool_t * plog , apr_pool_t * ptemp , server_rec * s )
476484{
477- char * src , * tgt , * rev ;
478485 char release [40 ];
479486 char errmsg [MAXERRLEN ];
480487 char * env ;
481- int srclen = 0 , i = 0 ;
482-
483- src = "$Revision$" ;
484- srclen = strlen (src );
485- rev = (char * )malloc (srclen * sizeof (char ));
486- tgt = rev ;
487-
488- while ( * src != ':' && i < srclen )
489- src ++ ; i ++ ;
490- if ( * src == ':' )
491- src ++ ; src ++ ;
492-
493- while ( * src != '$' && i < srclen )
494- * tgt ++ = * src ++ ; i ++ ;
495- tgt -- ;
496- * tgt = 0 ;
497488
498489 release [0 ] = '\0' ;
499- SNPRINTF ( release , sizeof (release ), "%s/%s" , MODULE , rev );
500- free (rev );
490+ SNPRINTF ( release , sizeof (release ), "%s/%s" , MODULE , RELEASE );
501491
502492 ap_add_version_component ( p , release );
503493
@@ -1443,7 +1433,11 @@ static const authn_provider authn_ibmdb2_provider =
14431433#if defined(APACHE24 )
14441434/* {{{ static const authz_provider authz_ibmdb2_provider =
14451435*/
1446- static const authz_provider authz_ibmdb2_provider = { & authz_ibmdb2_check_authorization , NULL , };
1436+ static const authz_provider authz_ibmdb2_provider =
1437+ {
1438+ & authz_ibmdb2_check_authorization ,
1439+ NULL ,
1440+ };
14471441/* }}} */
14481442#endif
14491443
0 commit comments