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

Re: (ITS#7413) Some UTF-8 characters are wrongly recognized as identical in multi-valued attributes



m.bachmann@cms.hu-berlin.de wrote:
> Full_Name: Michail Bachmann
> Version: 2.4.31
> OS: Linux
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (141.20.3.158)
>
>
>
> The UTF-8 character 'FEMININE ORDINAL INDICATOR' (U+00AA) is wrongly treated as
> 'LATIN SMALL LETTER A' (U+0061), so adding a multi-valued attribute where U+00AA
> is replaced with U+0061 (or the other way around) fails:

This works as designed. See the Unicode specification, rules for decomposition.
>
> $ ldapadd -f create.ldif -h localhost -D 'cn=admin,dc=example,dc=com'
>
> ### create.ldif ###
> dn: cn=test,dc=example,dc=com
> objectClass: organizationalRole
> objectClass: top
> cn: test
> street: a street
> ### /create.ldif ###
>
> $ ldapmodify -f modify.ldif -h localhost -D 'cn=admin,dc=example,dc=com'
>
> ### modify.ldif ###
> dn: cn=test,dc=example,dc=com
> changetype: modify
> add: street
> street: ª street
> -
>
> ### /modify.ldif ###
>
> will result in
>
> ldap_modify: Type or value exists (20)
>          additional info: modify/add: street: value #0 already exists
>
> It seems like U+00AA is decomposed into '<super>+U+0061' and then the '<super>'
> part is discarded.
>
> Tested with 2.4.31 (Debian) and 2.4.21 (Ubuntu)
>
>
>


-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/