[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
(ITS#3684) ldapadd and ldapsearch cause slapd segfault
Full_Name: Rob Fielding
Version: 2.3.2 CVS HEAD
OS: Fedora 3, DB-4.2.52 with stanford uni patches
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (62.69.64.93)
Testing OpenSRS 2.3.2 CVS HEAD we discover ldapsearch and ldapadd will crash
slapd resulting in database corruption which cannot be fixed by slapd's
automatic recovery feature. A db_recover must be performed, and the alock file
must be removed.
slapd -d-1 of ldapadd -x -w foo -D 'cn=root' -f
../in/slap_minimal-ointernet.ldif
daemon: activity on 1 descriptors
daemon: new connection on 13
conn=1 fd=13 ACCEPT from IP=127.0.0.1:57572 (IP=0.0.0.0:389)
daemon: added 13r
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 13r
daemon: read activity on 13
connection_get(13)
connection_get(13): got connid=1
connection_read(13): checking for input on id=1
ber_get_next
ldap_read: want=8, got=8
0000: 30 16 02 01 01 60 11 02 0....`..
ldap_read: want=16, got=16
0000: 01 03 04 07 63 6e 3d 72 6f 6f 74 80 03 66 6f 6f
....cn=root..foo
ber_get_next: tag 0x30 len 22 contents:
ber_dump: buf=0x0077b8c0 ptr=0x0077b8c0 end=0x0077b8d6 len=22
0000: 02 01 01 60 11 02 01 03 04 07 63 6e 3d 72 6f 6f
...`......cn=roo
0010: 74 80 03 66 6f 6f t..foo
ber_get_next
ldap_read: want=8 error=Resource temporarily unavailable
ber_get_next on fd 13 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
do_bind
ber_scanf fmt ({imt) ber:
ber_dump: buf=0x0077b8c0 ptr=0x0077b8c3 end=0x0077b8d6 len=19
0000: 60 11 02 01 03 04 07 63 6e 3d 72 6f 6f 74 80 03
`......cn=root..
0010: 66 6f 6f foo
ber_scanf fmt (m}) ber:
ber_dump: buf=0x0077b8c0 ptr=0x0077b8d1 end=0x0077b8d6 len=5
0000: 00 03 66 6f 6f ..foo
>>> dnPrettyNormal: <cn=root>
=> ldap_bv2dn(cn=root,0)
ldap_err2string
<= ldap_bv2dn(cn=root)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root)=0 Success
<<< dnPrettyNormal: <cn=root>, <cn=root>
do_bind: version=3 dn="cn=root" method=128
conn=1 op=0 BIND dn="cn=root" method=128
==> bdb_bind: dn: cn=root
bdb_dn2entry("cn=root")
=> bdb_dn2id("cn=root")
<= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found
(-30990)
Segmentation fault
slapd -d-1 of ldapsearch -w foo -x -b 'o=internet' -D 'cn=root' '(cn=foobar)'
daemon: activity on 1 descriptors
daemon: new connection on 13
conn=1 fd=13 ACCEPT from IP=127.0.0.1:33252 (IP=0.0.0.0:389)
daemon: added 13r
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 13r
daemon: read activity on 13
connection_get(13)
connection_get(13): got connid=1
connection_read(13): checking for input on id=1
ber_get_next
ldap_read: want=8, got=8
0000: 30 16 02 01 01 60 11 02 0....`..
ldap_read: want=16, got=16
0000: 01 03 04 07 63 6e 3d 72 6f 6f 74 80 03 66 6f 6f ....cn=root..foo
ber_get_next: tag 0x30 len 22 contents:
ber_dump: buf=0x007792b0 ptr=0x007792b0 end=0x007792c6 len=22
0000: 02 01 01 60 11 02 01 03 04 07 63 6e 3d 72 6f 6f ...`......cn=roo
0010: 74 80 03 66 6f 6f t..foo
ber_get_next
ldap_read: want=8 error=Resource temporarily unavailable
ber_get_next on fd 13 failed errno=11 (Resource temporarily unavailable)
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
do_bind
ber_scanf fmt ({imt) ber:
ber_dump: buf=0x007792b0 ptr=0x007792b3 end=0x007792c6 len=19
0000: 60 11 02 01 03 04 07 63 6e 3d 72 6f 6f 74 80 03 `......cn=root..
0010: 66 6f 6f foo
ber_scanf fmt (m}) ber:
ber_dump: buf=0x007792b0 ptr=0x007792c1 end=0x007792c6 len=5
0000: 00 03 66 6f 6f ..foo
>>> dnPrettyNormal: <cn=root>
=> ldap_bv2dn(cn=root,0)
ldap_err2string
<= ldap_bv2dn(cn=root)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root)=0 Success
=> ldap_dn2bv(272)
ldap_err2string
<= ldap_dn2bv(cn=root)=0 Success
<<< dnPrettyNormal: <cn=root>, <cn=root>
do_bind: version=3 dn="cn=root" method=128
conn=1 op=0 BIND dn="cn=root" method=128
==> bdb_bind: dn: cn=root
bdb_dn2entry("cn=root")
=> bdb_dn2id("cn=root")
<= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30990)
Segmentation fault
Hope this helps,