andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 4 months ago
Clone
Blob Blame History Raw
From 2691a06b0eacabe000e9629e0d222d8652f96192 Mon Sep 17 00:00:00 2001
From: Noriko Hosoi <nhosoi@redhat.com>
Date: Tue, 26 Apr 2016 13:53:02 -0700
Subject: [PATCH 380/382] Ticket #48808 - Paged results search returns the
 blank list of entries

Bug Description: When a simple paged results slot in a connection is
discarded due to an error, e.g., SIZELIMIT_EXCEEDED, the slot was not
properly cleaned up.  Then, if the slot was reused, the leftover flag
confused the code and ended up returning the 0 search result.

Fix Description: This patch adds the clean up code when a slot is re-
used.

https://fedorahosted.org/389/ticket/48808

Reviewed by wibrown@redhat.com (Thank you, William!!)

(cherry picked from commit 09180b25570696d24c86e3a046fb497c15549c64)
(cherry picked from commit a8486ab3b364a9ae088d6404d025058b04ac358d)
(cherry picked from commit e51b4238809a5421fd470f02853d38a70747f7bd)
---
 ldap/servers/slapd/pagedresults.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ldap/servers/slapd/pagedresults.c b/ldap/servers/slapd/pagedresults.c
index d10edd0..c714aff 100644
--- a/ldap/servers/slapd/pagedresults.c
+++ b/ldap/servers/slapd/pagedresults.c
@@ -145,6 +145,7 @@ pagedresults_parse_control_value( Slapi_PBlock *pb,
             prp = conn->c_pagedresults.prl_list;
             for (i = 0; i < conn->c_pagedresults.prl_maxlen; i++, prp++) {
                 if (!prp->pr_current_be) { /* unused slot; take it */
+                    _pr_cleanup_one_slot(prp);
                     prp->pr_current_be = be;
                     *index = i;
                     break;
-- 
2.4.11