From: Howard Chu Date: Thu, 17 Sep 2020 19:18:20 +0000 (+0100) Subject: ITS#9352 syncrepl: fix syncrepl_op_modify on entry with no entryCSN X-Git-Tag: OPENLDAP_REL_ENG_2_4_54~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4156d8a50e05dcaebdcb2e0ed86fd75fff11d24c;p=thirdparty%2Fopenldap.git ITS#9352 syncrepl: fix syncrepl_op_modify on entry with no entryCSN --- diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index ba37f1e581..eedc24abbe 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -2242,10 +2242,15 @@ syncrepl_op_modify( Operation *op, SlapReply *rs ) Attribute *a; const char *text; a = attr_find( e->e_attrs, slap_schema.si_ad_entryCSN ); - value_match( &match, slap_schema.si_ad_entryCSN, - slap_schema.si_ad_entryCSN->ad_type->sat_ordering, - SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX, - &mod->sml_nvalues[0], &a->a_nvals[0], &text ); + if ( a ) { + value_match( &match, slap_schema.si_ad_entryCSN, + slap_schema.si_ad_entryCSN->ad_type->sat_ordering, + SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX, + &mod->sml_nvalues[0], &a->a_nvals[0], &text ); + } else { + /* no entryCSN? shouldn't happen. assume mod is newer. */ + match = 1; + } overlay_entry_release_ov( op, e, 0, on ); } /* equal? Should never happen */