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 );