From 62a49ab496f6ce0460ce220d62a51df17a764563 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Thu, 12 May 2005 22:38:16 +0000 Subject: [PATCH] import fix to sizelimit bug (ITS#3720) --- CHANGES | 1 + servers/slapd/back-meta/search.c | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CHANGES b/CHANGES index 60381c97bc..ee99ca1d6d 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,7 @@ OpenLDAP 2.2 Change Log OpenLDAP 2.2.27 Engineering Fixed back-ldap/back-meta debug output of NULL strings (ITS#3698) + Fixed back-meta sizelimit bug (ITS#3720) Fixed syncrepl runqueue (ITS#3542) Fixed ACL val default style parsing crasher (ITS#3700) Build Environment diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c index 77c63189f5..556f8c8cc0 100644 --- a/servers/slapd/back-meta/search.c +++ b/servers/slapd/back-meta/search.c @@ -85,7 +85,7 @@ meta_back_search( Operation *op, SlapReply *rs ) } if ( !meta_back_dobind( lc, op ) ) { - rs->sr_err = LDAP_OTHER; + rs->sr_err = LDAP_UNAVAILABLE; send_ldap_result( op, rs ); return -1; } @@ -315,14 +315,6 @@ new_candidate:; break; } - if ( op->ors_slimit > 0 - && rs->sr_nentries == op->ors_slimit ) { - rs->sr_err = LDAP_SIZELIMIT_EXCEEDED; - rs->sr_v2ref = v2refs; - send_ldap_result( op, rs ); - goto finish; - } - /* * FIXME: handle time limit as well? * Note that target servers are likely @@ -357,6 +349,17 @@ new_candidate:; goto finish; } else if ( rc == LDAP_RES_SEARCH_ENTRY ) { + if ( op->ors_slimit > 0 && rs->sr_nentries == op->ors_slimit ) + { + ldap_msgfree( res ); + res = NULL; + + rs->sr_err = LDAP_SIZELIMIT_EXCEEDED; + rs->sr_v2ref = v2refs; + send_ldap_result( op, rs ); + goto finish; + } + e = ldap_first_entry( lsc->ld, res ); meta_send_entry( op, rs, lc, i, e ); -- 2.39.2