]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/search.c
ITS#6242
[openldap] / servers / slapd / search.c
index caf1dbee9e0df687492f70de0eca7af1fb1d1be9..ecdae3ce6154d32526cbf4d45a03205e96753b70 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2008 The OpenLDAP Foundation.
+ * Copyright 1998-2009 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -152,7 +152,7 @@ do_search(
                const char *dummy;      /* ignore msgs from bv2ad */
                op->ors_attrs[i].an_desc = NULL;
                op->ors_attrs[i].an_oc = NULL;
-               op->ors_attrs[i].an_oc_exclude = 0;
+               op->ors_attrs[i].an_flags = 0;
                if ( slap_bv2ad( &op->ors_attrs[i].an_name,
                        &op->ors_attrs[i].an_desc, &dummy ) != LDAP_SUCCESS )
                {
@@ -180,7 +180,7 @@ do_search(
 
        if ( StatslogTest( LDAP_DEBUG_STATS ) ) {
                char abuf[BUFSIZ/2], *ptr = abuf;
-               int len = 0, alen;
+               unsigned len = 0, alen;
 
                sprintf(abuf, "scope=%d deref=%d", op->ors_scope, op->ors_deref);
                Statslog( LDAP_DEBUG_STATS,
@@ -227,7 +227,7 @@ return_results:;
                op->o_tmpfree( op->ors_filterstr.bv_val, op->o_tmpmemctx );
        }
        if ( op->ors_filter != NULL) {
-               filter_free_x( op, op->ors_filter );
+               filter_free_x( op, op->ors_filter, 1 );
        }
        if ( op->ors_attrs != NULL ) {
                op->o_tmpfree( op->ors_attrs, op->o_tmpmemctx );
@@ -241,8 +241,7 @@ fe_op_search( Operation *op, SlapReply *rs )
 {
        BackendDB               *bd = op->o_bd;
 
-       /* fake while loop to allow breaking out */
-       while ( op->ors_scope == LDAP_SCOPE_BASE ) {
+       if ( op->ors_scope == LDAP_SCOPE_BASE ) {
                Entry *entry = NULL;
 
                if ( BER_BVISEMPTY( &op->o_req_ndn ) ) {
@@ -299,7 +298,6 @@ fe_op_search( Operation *op, SlapReply *rs )
                        send_ldap_result( op, rs );
                        goto return_results;
                }
-               break;
        }
 
        if( BER_BVISEMPTY( &op->o_req_ndn ) && !BER_BVISEMPTY( &default_search_nbase ) ) {