]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/dyngroup.c
fix ITS#3788: don't free slapo-rwm callback, rather reuse it
[openldap] / servers / slapd / overlays / dyngroup.c
index f5ced8399078c2731d3aa3af532b1bfe58d15a02..1bdd95e14e075c114a8e8bbcf74797ec7b35d7e0 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2003 The OpenLDAP Foundation.
+ * Copyright 2003-2005 The OpenLDAP Foundation.
  * Copyright 2003 by Howard Chu.
  * All rights reserved.
  *
@@ -64,10 +64,11 @@ dyngroup_response( Operation *op, SlapReply *rs )
                                int cache = op->o_do_not_cache;
                                
                                op->o_do_not_cache = 1;
-                               if ( backend_group( op, NULL, &op->o_req_ndn,
-                                       &op->oq_compare.rs_ava->aa_value, NULL, ap->ap_uri ) == 0 )
-                                       rs->sr_err = LDAP_COMPARE_TRUE;
+                               rs->sr_err = backend_group( op, NULL, &op->o_req_ndn,
+                                       &op->oq_compare.rs_ava->aa_value, NULL, ap->ap_uri );
                                op->o_do_not_cache = cache;
+                               if ( rs->sr_err == LDAP_SUCCESS )
+                                       rs->sr_err = LDAP_COMPARE_TRUE;
                                break;
                        }
                }
@@ -117,6 +118,8 @@ static int dyngroup_config(
                a2->ap_mem = ap.ap_mem;
                a2->ap_uri = ap.ap_uri;
                on->on_bi.bi_private = a2;
+       } else {
+               return SLAP_CONF_UNKNOWN;
        }
        return 0;
 }