#include "lutil.h"
#include "config.h"
+#include "../../../libraries/liblber/lber-int.h" /* ber_rewind */
+
/* RFC2891: Server Side Sorting
* RFC2696: Paged Results
*/
typedef struct sort_ctrl {
int sc_nkeys;
- sort_key sc_keys[0];
+ sort_key sc_keys[1];
} sort_ctrl;
int rc = SLAP_CB_CONTINUE;
int ok;
sort_op *so, so2;
- sort_ctrl *sc = op->o_controls[sss_cid];
+ sort_ctrl *sc;
PagedResultsState *ps;
vlv_ctrl *vc;
op->o_req_dn.bv_val, op->ors_filterstr.bv_val,
op->o_ctrlflag[sss_cid]);
+ sc = op->o_controls[sss_cid];
if ( sc->sc_nkeys > si->svi_max_keys ) {
rs->sr_text = "Too many sort keys";
rs->sr_err = LDAP_UNWILLING_TO_PERFORM;
i = count_key( ber );
sc = op->o_tmpalloc( sizeof(sort_ctrl) +
- i * sizeof(sort_key), op->o_tmpmemctx );
+ (i-1) * sizeof(sort_key), op->o_tmpmemctx );
sc->sc_nkeys = i;
op->o_controls[sss_cid] = sc;