Red Hat Bugzilla – Bug 225352
CLA: resurrected value uses case of former value
Last modified: 2015-01-04 18:24:17 EST
If replication is enabled and you add a value to an attribute, like a cn of FOO,
then delete that value, and then add a cn of foo (lower case), it will show up
in the entry as FOO rather than foo.
The code in entry_add_present_values_wsi() eventually calls
slapi_attr_value_cmp() to figure out if the value exists on the deleted list.
slapi_attr_value_cmp() uses the proper syntax plugin compare deleted values to
the value being added and since cn is case-ignore, it's a match. Since it's
determined to exist on the deleted list it's simply moved onto the present list,
and the old case is resurrected.
Created attachment 148976 [details]
fix proposal, compares Slapi_Value arrays and fix the case
Currently when a value is added and it's present on the deleted list (in
entrywsi), it's moved to the present list. The proposed change will perform a
bitwise comparison on the values from the deleted list with the values that the
client passed for the operation, and if they don't match, it replaces the
resurrected Slapi_Value's berval with the one with the proper case specified by
Fix looks good.
*** This bug has been marked as a duplicate of bug 428929 ***