Skip to content

Commit 3d76142

Browse files
committed
validate also glibc2 crypt hashes, change to use RELEASE instead of cvs Revision
1 parent 37875d6 commit 3d76142

File tree

1 file changed

+18
-24
lines changed

1 file changed

+18
-24
lines changed

mod_authnz_ibmdb2.c

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
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
*/
475483
static 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

Comments
 (0)