]> git.sur5r.net Git - openldap/commitdiff
Fix matchedDn detection
authorHoward Chu <hyc@openldap.org>
Mon, 7 Apr 2003 10:51:57 +0000 (10:51 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 7 Apr 2003 10:51:57 +0000 (10:51 +0000)
servers/slapd/back-ldap/search.c
servers/slapd/back-ldap/suffixmassage.c

index 31158d7a31374343f7f9a20f660390595f6795e0..cc4fbe2277ebf1d326f8bb3b0619dad6da8f8852 100644 (file)
@@ -317,7 +317,7 @@ fail:;
        /*
         * Rewrite the matched portion of the search base, if required
         */
-       if ( match != NULL ) {
+       if ( match && *match ) {
                struct berval dn, mdn;
 
 #ifdef ENABLE_REWRITE
index f4a31c1f785c3bbef8494e167c65b20969f4d767..15a8903cf2de27ae097d47de228be19dea5de93e 100644 (file)
@@ -92,12 +92,12 @@ ldap_back_dn_massage(
 int
 ldap_back_dn_massage(
        dncookie *dc,
-       struct berval *dn,
+       struct berval *odn,
        struct berval *res
 )
 {
        int     i, src, dst;
-       struct berval pretty = {0,NULL};
+       struct berval pretty = {0,NULL}, *dn = odn;
 
        assert( res );
 
@@ -157,13 +157,14 @@ ldap_back_dn_massage(
                        break;
                }
        }
+       if (pretty.bv_val) {
+               ch_free(pretty.bv_val);
+               dn = odn;
+       }
        /* Nothing matched, just return the original DN */
        if (res->bv_val == NULL) {
                *res = *dn;
        }
-       if (pretty.bv_val) {
-               ch_free(pretty.bv_val);
-       }
 
        return 0;
 }