Commit 8d677059 authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#5665

parent da88132c
...@@ -19,6 +19,7 @@ OpenLDAP 2.4.12 Engineering ...@@ -19,6 +19,7 @@ OpenLDAP 2.4.12 Engineering
Fixed slapd-sql fault on NULL fields (ITS#5653) Fixed slapd-sql fault on NULL fields (ITS#5653)
Fixed slapo-constraint string termination (ITS#5609) Fixed slapo-constraint string termination (ITS#5609)
Fixed slapo-memberof internal operations DN (ITS#5622) Fixed slapo-memberof internal operations DN (ITS#5622)
Fixed slapo-pcache attrset crash (ITS#5665)
Fixed slapo-rwm callback cleanup (ITS#5601) Fixed slapo-rwm callback cleanup (ITS#5601)
Fixed slapo-rwm attr mapping and merging (ITS#5624) Fixed slapo-rwm attr mapping and merging (ITS#5624)
Fixed slapo-rwm objectClass filtering (ITS#5647) Fixed slapo-rwm objectClass filtering (ITS#5647)
......
...@@ -1593,6 +1593,7 @@ struct search_info { ...@@ -1593,6 +1593,7 @@ struct search_info {
Query query; Query query;
QueryTemplate *qtemp; QueryTemplate *qtemp;
AttributeName* save_attrs; /* original attributes, saved for response */ AttributeName* save_attrs; /* original attributes, saved for response */
int swap_saved_attrs;
int max; int max;
int over; int over;
int count; int count;
...@@ -1984,7 +1985,7 @@ pcache_op_cleanup( Operation *op, SlapReply *rs ) { ...@@ -1984,7 +1985,7 @@ pcache_op_cleanup( Operation *op, SlapReply *rs ) {
if ( rs->sr_type == REP_RESULT || if ( rs->sr_type == REP_RESULT ||
op->o_abandon || rs->sr_err == SLAPD_ABANDON ) op->o_abandon || rs->sr_err == SLAPD_ABANDON )
{ {
if ( si->save_attrs != NULL ) { if ( si->swap_saved_attrs ) {
rs->sr_attrs = si->save_attrs; rs->sr_attrs = si->save_attrs;
op->ors_attrs = si->save_attrs; op->ors_attrs = si->save_attrs;
} }
...@@ -2067,7 +2068,7 @@ pcache_response( ...@@ -2067,7 +2068,7 @@ pcache_response(
{ {
struct search_info *si = op->o_callback->sc_private; struct search_info *si = op->o_callback->sc_private;
if ( si->save_attrs != NULL ) { if ( si->swap_saved_attrs ) {
rs->sr_attrs = si->save_attrs; rs->sr_attrs = si->save_attrs;
op->ors_attrs = si->save_attrs; op->ors_attrs = si->save_attrs;
} }
...@@ -2164,7 +2165,7 @@ add_filter_attrs( ...@@ -2164,7 +2165,7 @@ add_filter_attrs(
} }
BER_BVZERO( &(*new_attrs)[j].an_name ); BER_BVZERO( &(*new_attrs)[j].an_name );
return count; return j;
} }
/* NOTE: this is a quick workaround to let pcache minimally interact /* NOTE: this is a quick workaround to let pcache minimally interact
...@@ -2416,6 +2417,7 @@ pcache_op_search( ...@@ -2416,6 +2417,7 @@ pcache_op_search(
} }
si->head = NULL; si->head = NULL;
si->tail = NULL; si->tail = NULL;
si->swap_saved_attrs = 1;
si->save_attrs = op->ors_attrs; si->save_attrs = op->ors_attrs;
op->ors_attrs = qtemp->t_attrs.attrs; op->ors_attrs = qtemp->t_attrs.attrs;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment