ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
New commits:
commit 9e65c7a35c425d93b2459aea5d249692ffb1eed4
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Mon Feb 13 20:14:12 2012 -0700
Ticket #294 - 389 DS Segfaults during replica install in FreeIPA
https://fedorahosted.org/389/ticket/294
Resolves: Ticket #294
Bug Description: 389 DS Segfaults during replica install in FreeIPA
Reviewed by: mreynolds (Thanks!)
Branch: master
Fix Description: Have to check for NULL childnrdn return from
slapi_rdn_get_prev_ext().
Platforms tested: RHEL6 x86_64
Flag Day: no
Doc impact: no
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c
b/ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c
index d793705..a0aaa80 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c
@@ -2314,9 +2314,10 @@ _entryrdn_insert_key(backend *be,
goto bail;
} else {
int tmpidx = slapi_rdn_get_prev_ext(srdn, rdnidx,
- &childnrdn, FLAG_ALL_NRDNS);
- if (0 == strncasecmp(childnrdn, SLAPI_ATTR_UNIQUEID,
- sizeof(SLAPI_ATTR_UNIQUEID) - 1)) {
+ &childnrdn,
FLAG_ALL_NRDNS);
+ if (childnrdn &&
+ (0 == strncasecmp(childnrdn, SLAPI_ATTR_UNIQUEID,
+ sizeof(SLAPI_ATTR_UNIQUEID) - 1))) {
rdnidx = tmpidx;
}
}
@@ -2824,9 +2825,10 @@ _entryrdn_index_read(backend *be,
goto bail;
} else {
int tmpidx = slapi_rdn_get_prev_ext(srdn, rdnidx,
- &childnrdn, FLAG_ALL_NRDNS);
- if (0 == strncasecmp(childnrdn, SLAPI_ATTR_UNIQUEID,
- sizeof(SLAPI_ATTR_UNIQUEID) - 1)) {
+ &childnrdn, FLAG_ALL_NRDNS);
+ if (childnrdn &&
+ (0 == strncasecmp(childnrdn, SLAPI_ATTR_UNIQUEID,
+ sizeof(SLAPI_ATTR_UNIQUEID) - 1))) {
rdnidx = tmpidx;
}
}