From 2a8b9fe5e38869fa94b62ff4ab6e2823e29b2563 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Thu, 15 Nov 2007 01:37:15 +0000 Subject: [PATCH] ITS#5230 --- CHANGES | 1 + servers/slapd/limits.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/CHANGES b/CHANGES index 348a9491ee..bd6790295a 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ OpenLDAP 2.4.7 Engineering Fixed slapd filter normalization (ITS#5212) Fixed slapd multiple sufix checking (ITS#5186) Fixed slapd contextCSN updating from old releases (ITS#5225) + Fixed slapd paged results handling when using rootdn (ITS#5230) Fixed slapo-ppolicy single password check on modify (ITS#5146) Fixed slapo-syncprov refresh and persist cookie sending (ITS#5210) Fixed slapo-syncprov ignore invalid cookies (ITS#5211) diff --git a/servers/slapd/limits.c b/servers/slapd/limits.c index 81f4027de3..5fbda3008c 100644 --- a/servers/slapd/limits.c +++ b/servers/slapd/limits.c @@ -1118,6 +1118,18 @@ limits_check( Operation *op, SlapReply *rs ) op->ors_slimit = SLAP_NO_LIMIT; } + /* if paged results and slimit are requested */ + if ( get_pagedresults( op ) > SLAP_CONTROL_IGNORED && + op->ors_slimit != SLAP_NO_LIMIT ) { + PagedResultsState *ps = op->o_pagedresults_state; + int total = op->ors_slimit - ps->ps_count; + if ( total > 0 ) { + op->ors_slimit = total; + } else { + op->ors_slimit = 0; + } + } + /* if not root, get appropriate limits */ } else { ( void ) limits_get( op, &op->o_ndn, &op->ors_limit ); -- 2.39.5