From: Pierangelo Masarati Date: Thu, 4 Oct 2007 21:53:49 +0000 (+0000) Subject: fix ITS#5168 (a better fix would probably be a generic handler to de-normalize values) X-Git-Tag: OPENLDAP_REL_ENG_2_4_9~20^2~556 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4cf03ca277ffb2b3f08aa4b913dbcbcfc4b0cb6f;p=openldap fix ITS#5168 (a better fix would probably be a generic handler to de-normalize values) --- 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 ) {