X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fpasswd.c;h=14e37f2970f830257690f2a3b4e0a519c57343f1;hb=4325d05ebc5ca096ee4a0d0177e7651c028c7449;hp=f45b974272d4bb57a657a29aea2d56f4c2313c0f;hpb=6107ba67d2fd7eadb23ffdd1d284306011ef4013;p=openldap diff --git a/servers/slapd/passwd.c b/servers/slapd/passwd.c index f45b974272..14e37f2970 100644 --- a/servers/slapd/passwd.c +++ b/servers/slapd/passwd.c @@ -1,7 +1,7 @@ /* bind.c - ldbm backend bind and unbind routines */ /* $OpenLDAP$ */ /* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -21,7 +21,7 @@ int passwd_extop( Connection *conn, Operation *op, - const char *reqoid, + struct berval *reqoid, struct berval *reqdata, char **rspoid, struct berval **rspdata, @@ -33,7 +33,7 @@ int passwd_extop( int rc; assert( reqoid != NULL ); - assert( strcmp( LDAP_EXOP_MODIFY_PASSWD, reqoid ) == 0 ); + assert( ber_bvcmp( &slap_EXOP_MODIFY_PASSWD, reqoid ) == 0 ); if( op->o_dn.bv_len == 0 ) { *text = "only authenticated users may change passwords"; @@ -50,8 +50,8 @@ int passwd_extop( } { - struct berval passwd = BER_BVC( LDAP_EXOP_MODIFY_PASSWD ); - rc = backend_check_restrictions( be, conn, op, &passwd, text ); + rc = backend_check_restrictions( be, conn, op, + (struct berval *)&slap_EXOP_MODIFY_PASSWD, text ); } if( rc != LDAP_SUCCESS ) { @@ -69,11 +69,14 @@ int passwd_extop( rc = LDAP_OTHER; #endif +#ifndef SLAPD_MULTIMASTER + /* This does not apply to multi-master case */ } else if( be->be_update_ndn.bv_len ) { /* we SHOULD return a referral in this case */ *refs = referral_rewrite( be->be_update_refs, NULL, NULL, LDAP_SCOPE_DEFAULT ); rc = LDAP_REFERRAL; +#endif /* !SLAPD_MULTIMASTER */ } else { rc = be->be_extended( @@ -95,7 +98,7 @@ int slap_passwd_parse( struct berval *reqdata, int rc = LDAP_SUCCESS; ber_tag_t tag; ber_len_t len; - char berbuf[256]; + char berbuf[LBER_ELEMENT_SIZEOF]; BerElement *ber = (BerElement *)berbuf; if( reqdata == NULL ) { @@ -236,7 +239,7 @@ struct berval * slap_passwd_return( { int rc; struct berval *bv = NULL; - char berbuf[256]; + char berbuf[LBER_ELEMENT_SIZEOF]; /* opaque structure, size unknown but smaller than berbuf */ BerElement *ber = (BerElement *)berbuf;