[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Slapd blows away rdn (ITS#475)

> From:    Kurt@OpenLDAP.org
> To:      openldap-its@OpenLDAP.org

> Anyways, I think a better solution would be to modify
> oc_schema_check() to do the check and to return a specific
> result code/error text.  And, optionally, s/oc_/entry_/.
> Then we'd be able to catch missing rdn on add and modify.

Actually, this is meant to catch the replace case.  E.g. RDN is formed
with cn, a replace of "cn" is made, which does not necessarily contain
the RDN.  On some servers, including the RDN in such a replace is an
error.  Hence, many clients explicitly don't include the RDN.  Under
the current OpenLDAP implementation, no explicitly including the RDN
causes the database to be corrupted.  For maximum compatibility, this
patch is supposed to silently add the RDN when it is missing, thus
making both client implementations correct.

We originally added the code to oc_schema_check(), but backed it out in
favor of this more correct patch.  I'm not familiar with