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

(ITS#4464) LDAP server crashed on modify

Full_Name: Claudio Cuqui
Version: 2.3.20
OS: FC5 64bits
Submission from: (NULL) (


We are facing a reproducable bug(?)/error when trying to modify a inexistent
record in openldap.

We just create a ldif file as below:

dn: uid=nonexistent@c3systems.com.br,ou=c3systems.com.br,o=C3
changetype: modify
replace: userpassword
userpassword: anypassword

and run ldapmodify passing it as input file as below:

[root@c3vm cuqui]# ldapmodify -x -D "cn=Admin,o=C3" -W -f ./teste.ldif
Enter LDAP Password:
modifying entry "uid=nonexistent@c3systems.com.br,ou=c3systems.com.br,o=C3"

After that, ldapserver crashed. We tried dozen of times with same results in all

We run this test in FC5 64 bits and SuSE ES 9 64bits. Same results in both.

Openldap was compiled in FC5 64bits and SuSE ES 9 64bits. We are linking it with
berkeleydb 4.4.20 (we had downloaded source and compiled it. Same with openldap.

Only uid (uid=nonexistent@c3systems.com.br) doesn't exists. ou=c3systems.com.br
and o=C3 both exists and have lots of records below them.

Openldap was compiled with options below:

configured by ./configure, generated by GNU Autoconf 2.59,
  with options \"'--prefix=/C3Systems/ldap_servers/openldap/bin-2.4.20'
'--with-tls' '--enable-crypt' '--enable-rewrite' '--enable-dnssrv'
'--enable-ldap' '--enable-ldbm' '--with-ldbm-berkeley' '--enable-meta'
'--enable-monitor' '--enable-null' '--enable-passwd' '--enable-shell'
'--enable-local' '--enable-bdb' '--enable-dyngroup' '--enable-proxycache'
'--enable-slurpd' 'CPPFLAGS=-I/C3Systems/openssl/bin/include

Berkeleydb was compiled with options below:


Relevant options in slapd.conf:

schemacheck     on
allow           bind_v2
database        ldbm
suffix          "o=C3"
rootdn          "cn=Admin,o=C3"

When running ldapserver with debug we got the results below (last lines of debug

<<< dnNormalize: <cn=admin,o=c3>
<= str2entry(ou=c3systems.com.br,o=C3) -> 0x77de50
<= id2entry_r( 2 ) 0x77de50 (disk)
ldbm_referrals: op=102
====> cache_return_entry_r( 2 ): created (0)
dn2entry_w: dn: "uid=nonexistent@c3systems.com.br,ou=c3systems.com.br,o=c3"
=> dn2id( "uid=nonexistent@c3systems.com.br,ou=c3systems.com.br,o=c3" )
=> ldbm_cache_open( "dn2id.dbb", 73, 600 )
<= ldbm_cache_open (cache 0)
<= dn2id NOID
dn2entry_r: dn: "ou=c3systems.com.br,o=c3"
=> dn2id( "ou=c3systems.com.br,o=c3" )
====> cache_find_entry_ndn2id("ou=c3systems.com.br,o=c3"): 2 (1 tries)
<= dn2id 2 (in cache)
=> id2entry_r( 2 )
====> cache_find_entry_id( 2 ) "ou=c3systems.com.br,o=C3" (found) (1 tries)
<= id2entry_r( 2 ) 0x77de50 (cache)
====> cache_return_entry_r( 2 ): returned (0)
Segmentation fault

This is REALLY causing serios problems to us. Any help will be VERY
Please, let me know if you need any further information


Claudio Cuqui