From: Pierangelo Masarati Date: Thu, 4 Oct 2007 21:55:51 +0000 (+0000) Subject: import fix to ITS#5168 X-Git-Tag: OPENLDAP_REL_ENG_2_4_6~61 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=2ea6cfc07687584726ff5de6a863641be8b81a38;p=openldap import fix to ITS#5168 --- diff --git a/CHANGES b/CHANGES index a067fcfe47..587d57730d 100644 --- a/CHANGES +++ b/CHANGES @@ -23,6 +23,7 @@ OpenLDAP 2.4.6 Engineering Fixed slapo-pcache returning incomplete results (ITS#5113) Fixed slapo-pcache sizelimit handling (ITS#5114) Fixed slapo-rwm modlist handling (ITS#5124) + Fixed slapo-rwm UUID in filter (ITS#5168) Build Environment Use separate config OID arc for contrib (ITS#5158) Updated contrib/ldapc++ build enviroment diff --git a/servers/slapd/overlays/rwmmap.c b/servers/slapd/overlays/rwmmap.c index f18d80d271..c5c9142090 100644 --- a/servers/slapd/overlays/rwmmap.c +++ b/servers/slapd/overlays/rwmmap.c @@ -32,6 +32,7 @@ #include "slap.h" #include "rwm.h" +#include "lutil.h" #undef ldap_debug /* silence a warning in ldap-int.h */ #include "../../../libraries/libldap/ldap-int.h" @@ -379,6 +380,7 @@ map_attr_value( { struct berval vtmp = BER_BVNULL; int freeval = 0; + char uuid[ LDAP_LUTIL_UUIDSTR_BUFSIZE ]; AttributeDescription *ad = *adp; struct ldapmapping *mapping = NULL; @@ -420,6 +422,14 @@ map_attr_value( return -1; } + } else if ( ad->ad_type->sat_syntax == slap_schema.si_ad_entryUUID->ad_type->sat_syntax ) { + vtmp.bv_len = lutil_uuidstr_from_normalized( value->bv_val, + value->bv_len, uuid, LDAP_LUTIL_UUIDSTR_BUFSIZE ); + if ( vtmp.bv_len < 0 ) { + return -1; + } + vtmp.bv_val = uuid; + } else if ( ad == slap_schema.si_ad_objectClass || ad == slap_schema.si_ad_structuralObjectClass ) {