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

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



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:

$ 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)