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

slaptest - segmentation fault (ITS#3268)

Full_Name: Daniel Mueller
Version: 2.2.15
OS: linux
URL: http://crux.fh-regensburg.de/cgi-bin/cvstrac/getfile/clc/openldap/Pkgfile
Submission from: (NULL) (3ffe:b80:1678:1:240:5ff:fe01:220f)


Since I'm an openldap newbie I wanted to use the 'slaptest' tool to check my
slapd.conf file. With the current version 2.2.15, I've got a segmentation fault
after it told me that my configuration file looks okay.

So I started ddd/gdb and found out the following:

servers/slapd/back-bdb/init.c: line 493:

XLOCK_ID_FREE(bdb->bi_dbenv, bdb->bi_cache.c_locker);

ddd showed me, that 'bdb->bi_dbenv' was ZERO (0x0). The result:

(gdb) step

Program received signal SIGSEGV, Segmentation fault.
0x080c2f99 in bdb_db_close (be=0x0) at init.c:493

I've made a simple patch:

@@ -490,7 +490,8 @@
                ldap_pvt_thread_rdwr_wunlock ( &bdb->bi_idl_tree_rwlock );
-       XLOCK_ID_FREE(bdb->bi_dbenv, bdb->bi_cache.c_locker);
+       if (bdb->bi_dbenv != NULL)
+               XLOCK_ID_FREE(bdb->bi_dbenv, bdb->bi_cache.c_locker);
        return 0;

It works nice now. But - to be honest - I'm not a programmer. What else do I
break with this line ?

The URL field points to a page that shows how we configure/compile openldap (a
CRUX Linux port).

Best regards,


Daniel Mueller
Berlin, Germany		(OpenPGP:  1024D/126EC290)