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)