diff options
author | Rich Megginson <rmeggins@redhat.com> | 2009-09-24 10:38:55 -0600 |
---|---|---|
committer | Rich Megginson <rmeggins@redhat.com> | 2009-09-24 11:11:21 -0600 |
commit | 64a62ff3bdf7bd7aea8dc4ffae3ffb130e5a34ea (patch) | |
tree | 243068884a839afb7b8a291e6445991fb28e40ab /ldap/servers/slapd/connection.c | |
parent | f2618f28c1c9637217ac27d64614bb5fa38f82ed (diff) | |
download | ds-64a62ff3bdf7bd7aea8dc4ffae3ffb130e5a34ea.tar.gz ds-64a62ff3bdf7bd7aea8dc4ffae3ffb130e5a34ea.tar.xz ds-64a62ff3bdf7bd7aea8dc4ffae3ffb130e5a34ea.zip |
MODIFY/replace with empty values does not ignore missing or unknown attributes
https://bugzilla.redhat.com/show_bug.cgi?id=516305
Resolves: bug 516305
Bug Description: MODIFY/replace with empty values does not ignore missing or unknown attributes
Reviewed by: nhosoi (Thanks!)
Fix Description: The function mods_have_effect() did not work correctly. It
would set the flag have_effect = 0 the first time a type was not found.
Then if a subsequent mod would apply, it would still return have_effect = 0.
What it should do is keep looking for all mod types in the list of mods to
see if any of them would apply, and return have_effect = 1 if at least one
of them would apply. This corresponds to RFC 4511 section 4.6:
replace: replace all existing values of the modification
attribute with the new values listed, creating the attribute
if it did not already exist. A replace with no value will
delete the entire attribute if it exists, and it is ignored
if the attribute does not exist.
So the proper behavior is to ignore attributes that do not exist, and to
apply the rest.
Platforms tested: RHEL5 x86_64
Flag Day: no
Doc impact: no
Diffstat (limited to 'ldap/servers/slapd/connection.c')
0 files changed, 0 insertions, 0 deletions