]> git.sur5r.net Git - openldap/commitdiff
ITS#8655 fix double free on paged search with pagesize 0
authorRyan Tandy <ryan@nardis.ca>
Thu, 18 May 2017 03:07:39 +0000 (20:07 -0700)
committerRyan Tandy <ryan@nardis.ca>
Sat, 20 May 2017 18:28:54 +0000 (18:28 +0000)
Fixes a double free when a search includes the Paged Results control
with a page size of 0 and the search base matches the filter.

servers/slapd/back-mdb/search.c

index 301d1a498ceec7597466481e28d54e2a8ad8ef1c..43442aa242216e70b9aac894d59aac82e3cbf97f 100644 (file)
@@ -1066,7 +1066,8 @@ notfound:
                        /* check size limit */
                        if ( get_pagedresults(op) > SLAP_CONTROL_IGNORED ) {
                                if ( rs->sr_nentries >= ((PagedResultsState *)op->o_pagedresults_state)->ps_size ) {
-                                       mdb_entry_return( op, e );
+                                       if (e != base)
+                                               mdb_entry_return( op, e );
                                        e = NULL;
                                        send_paged_response( op, rs, &lastid, tentries );
                                        goto done;