X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Foverlays%2Frwmdn.c;h=9348c70f119ad1cfa80e1fc44af7b6ebdcc36e53;hb=fb2e448e877a8a387084dde517362c9f7bf1b6b7;hp=1fc769270548fff82920a33926d48d05dd6dc570;hpb=250c0967130bd16283b44088416b822f1b9981ed;p=openldap
diff --git a/servers/slapd/overlays/rwmdn.c b/servers/slapd/overlays/rwmdn.c
index 1fc7692705..9348c70f11 100644
--- a/servers/slapd/overlays/rwmdn.c
+++ b/servers/slapd/overlays/rwmdn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software .
*
- * Copyright 1999-2004 The OpenLDAP Foundation.
+ * Copyright 1999-2007 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
@@ -16,7 +16,7 @@
* .
*/
/* ACKNOWLEDGEMENTS:
- * This work was initially developed by the Howard Chu for inclusion
+ * This work was initially developed by Howard Chu for inclusion
* in OpenLDAP Software and subsequently enhanced by Pierangelo
* Masarati.
*/
@@ -157,13 +157,14 @@ rwm_dn_massage(
{
int rc = 0;
struct berval mdn;
+ static char *dmy = "";
- assert( dc );
- assert( in );
- assert( dn );
+ assert( dc != NULL );
+ assert( in != NULL );
+ assert( dn != NULL );
rc = rewrite_session( dc->rwmap->rwm_rw, dc->ctx,
- ( in->bv_len ? in->bv_val : "" ),
+ ( in->bv_val ? in->bv_val : dmy ),
dc->conn, &mdn.bv_val );
switch ( rc ) {
case REWRITE_REGEXEC_OK:
@@ -197,6 +198,14 @@ rwm_dn_massage(
break;
}
+ if ( mdn.bv_val == dmy ) {
+ BER_BVZERO( &mdn );
+ }
+
+ if ( dn->bv_val == dmy ) {
+ BER_BVZERO( dn );
+ }
+
return rc;
}
@@ -216,9 +225,9 @@ rwm_dn_massage(
int i, src, dst;
struct berval tmpin;
- assert( dc );
- assert( in );
- assert( dn );
+ assert( dc != NULL );
+ assert( in != NULL );
+ assert( dn != NULL );
BER_BVZERO( dn );