[Fedora-directory-commits] ldapserver/ldap/servers/slapd/back-ldbm index.c, 1.5.2.2, 1.5.2.3
Nathan Kinder (nkinder)
fedora-directory-commits at redhat.com
Wed Jul 9 17:02:58 UTC 2008
Author: nkinder
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv10015/slapd/back-ldbm
Modified Files:
Tag: Directory71RtmBranch
index.c
Log Message:
Resolves: 452169
Summary: Crash in indexing code when attribute is missing.
Index: index.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/back-ldbm/index.c,v
retrieving revision 1.5.2.2
retrieving revision 1.5.2.3
diff -u -r1.5.2.2 -r1.5.2.3
--- index.c 11 Jan 2008 20:05:14 -0000 1.5.2.2
+++ index.c 9 Jul 2008 17:02:56 -0000 1.5.2.3
@@ -641,14 +641,22 @@
* BE_INDEX_EQUALITY flag so the equality index is
* removed.
*/
- slapi_entry_attr_find( olde->ep_entry, mods[i]->mod_type, &curr_attr);
- for (j = 0; mods_valueArray[j] != NULL; j++ ) {
- if ( valuearray_find(curr_attr, evals, mods_valueArray[j]) == -1 ) {
- if (!(flags & BE_INDEX_EQUALITY)) {
- flags |= BE_INDEX_EQUALITY;
+ slapi_entry_attr_find( newe->ep_entry, mods[i]->mod_type, &curr_attr);
+ if (curr_attr) {
+ for (j = 0; mods_valueArray[j] != NULL; j++ ) {
+ if ( valuearray_find(curr_attr, evals, mods_valueArray[j]) == -1 ) {
+ if (!(flags & BE_INDEX_EQUALITY)) {
+ flags |= BE_INDEX_EQUALITY;
+ }
}
}
- }
+ } else {
+ /* If we didn't find the attribute in the new
+ * entry, we should remove the equality index. */
+ if (!(flags & BE_INDEX_EQUALITY)) {
+ flags |= BE_INDEX_EQUALITY;
+ }
+ }
rc = index_addordel_values_sv( be, basetype,
mods_valueArray,
More information about the Fedora-directory-commits
mailing list