#50021 Ticket 50020 - during MODRDN referential integrity can fail erronously while updating large groups
Closed by spichugi. Opened by tbordaz.
tbordaz/389-ds-base ticket_50020  into  master

Download 50021.patch

Bug Description:
During a MODRDN of a group member, referential integrity will update the groups containing this member.
Under specific conditions, the MODRDN can fail (err=1).

on MODRDN Referential integrity checks if the original DN of the target MODRDN entry is
member of a given group. If it is then it updates the group.
The returned code of the group update is using the variable 'rc'.
It does a normalized DN comparison to compare original DN with members DN, to determine if
a group needs to be updated.
If the group does not need to be updated, 'rc' is not set.
The bug is that it uses 'rc' to normalize the DN and if the group is not updated
the returned code reflects the normalization returned code rather that the group update.
The bug is hit in specific conditions
    One of the evaluated group contains more than 128 members
    the last member (last value) of the group is not the moved entry
    the last member (last value) of the group is a DN value that contains escaped chars

Fix Description:
Use a local variable to check the result of the DN normalization

https://pagure.io/389-ds-base/issue/50020

Reviewed by: ?

Platforms tested: F27

Flag Day: no

LGTM and tested

ack too

rebased onto 5284dcecfc66b28ee1eb9e6980dd685ecef45e3a

Pull-Request has been merged by tbordaz

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This pull request has been cloned to Github as issue and is available here:
- https://github.com/389ds/389-ds-base/issues/3080

If you want to continue to work on the PR, please navigate to the github issue,
download the patch from the attachments and file a new pull request.

Thank you for understanding. We apologize for all inconvenience.

Pull-Request has been closed by spichugi

Metadata