Friday, June 27, 2014

[389-commits] Branch '389-ds-base-1.3.2' - ldap/servers

ldap/servers/slapd/util.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

New commits:
commit 36b883082265a2a5b2c818c0f7ce93e97ee55672
Author: Noriko Hosoi <nhosoi@redhat.com>
Date: Fri Jun 27 12:51:30 2014 -0700

Ticket #47750 - Creating a glue fails if one above level is a conflict or missing

Bug description: https://fedorahosted.org/389/ticket/47750#comment:16

Fix description: The logic in slapi_is_special_rdn to check if the
RDN is a tombstone or not had a problem. Even if the first part of
RDN is not nsuniqueid=<UNIQUE_ID>, it was returning true. In this
patch, code to check the case is added and it returns false if the
first part of RDN is not nsuniqueid=<UNIQUE_ID>.

Reviewed by mreynolds@redhat.com and rmeggins@redhat.com (Thank you,
Mark and Rich!!)
(cherry picked from commit 286559dac7a968faa0102f0165ba56892795b269)

diff --git a/ldap/servers/slapd/util.c b/ldap/servers/slapd/util.c
index 4c23af2..3690bf7 100644
--- a/ldap/servers/slapd/util.c
+++ b/ldap/servers/slapd/util.c
@@ -1475,7 +1475,7 @@ slapi_is_special_rdn(const char *rdn, int flag)
}
rp = (char *)rdn;
while (rp) {
- char *comma = NULL;
+ char *endp = NULL;
if (!PL_strncasecmp(rp, SLAPI_ATTR_UNIQUEID, SLAPI_ATTR_UNIQUEID_LENGTH) &&
(*(rp + SLAPI_ATTR_UNIQUEID_LENGTH) == '=')) {
if (RDN_IS_TOMBSTONE == flag) {
@@ -1492,10 +1492,17 @@ slapi_is_special_rdn(const char *rdn, int flag)
return 1;
}
}
+ } else if (RDN_IS_TOMBSTONE == flag) {
+ /* If the first part of rdn does not start with SLAPI_ATTR_UNIQUEID,
+ * it's not a tombstone RDN. */
+ return 0;
+ }
+ endp = PL_strchr(rp, ',');
+ if (!endp) {
+ endp = rp + strlen(rp);
}
- comma = PL_strchr(rp, ',');
rp = PL_strchr(rp, '+');
- if (rp && (rp < comma)) {
+ if (rp && (rp < endp)) {
plus = 1;
rp++;
}


--
389 commits mailing list
389-commits@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-commits

No comments:

Post a Comment