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

Re: sasl/db related runtime crash (ITS#1798)



At 06:08 PM 2002-05-04, kervin@blueprint-tech.com wrote:
>Full_Name: Kervin Pierre
>Version: CVS
>OS: rh7.2
>URL: ftp://ftp.openldap.org/incoming/
>Submission from: (NULL) (65.186.68.157)
>
>
>This is a sasl error, but it causes a runtime crash in slapd, so I believe it's
>pertinent to the list.

Please report this to the Cyrus SASL folks.  As this is not an
OpenLDAP error, this issue will be closed.


>I suspect the issue has to do with cyrus sasl 2 ( tested with 2.1.2 ) harded
>coded check for db3/db.h in its aclocal file before looking for db.h.  It then,
>though, links against the most recent db library that it finds.  
>
>Therefore it compiles against version 3 headers, but links against the most
>recent ( in my case version 4 ), if you have both installed.
>
>This is my guess, at least.  Also, at that time /etc/sasldb2 does not exist.  
>
>at any rate, this causes a segfault in berkeleydb_open() in
>'cyrus-sasl-2.1.2/sasldb/db_berkeley.c' taking slapd with it...
>
>...
>#else /* DB_VERSION_MAJOR < 3 */
>    ret = db_create(mbdb, NULL, 0);
>    if (ret == 0 && *mbdb != NULL)
>    {
>            ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
>...
>
>Segfault is at the open()
>
>The end result is that ldapsearch reliabley crashes slapd if I don't use '-x'
>flag.
>
>(gdb) bt f
>#0  0x00000000 in ?? ()
>No symbol table info available.
>#1  0x403bbdb4 in berkeleydb_open (utils=0x8200290, conn=0x81ff600, rdwr=0,
>mbdb=0x40902e70) at db_berkeley.c:92
>        path = 0x403bc880 "/etc/sasldb2"
>        ret = 0
>        cntxt = (void *) 0x81ff600
>        getopt = (sasl_getopt_t *) 0x401252d0 <_sasl_conn_getopt>
>        path = 0x403bc880 "/etc/sasldb2"
>        cntxt = (void *) 0x81ff600
>        getopt = (sasl_getopt_t *) 0x401252d0 <_sasl_conn_getopt>
>#2  0x403bbf4a in _sasldb_getdata (utils=0x8200290, context=0x81ff600,
>auth_identity=0x8201800 "kervin", 
>    realm=0x82017f0 "bashful", propName=0x40022377 "userPassword",
>out=0x40902f0c "", max_out=8192, out_len=0x40902f00)
>    at db_berkeley.c:173
>        result = 0
>        key = 0x8201810 "kervin"
>        key_len = 27
>        dbkey = {data = 0x40902f04, size = 0, ulen = 1083190996, dlen =
>1077653269, doff = 136315536, flags = 136320992}
>        data = {data = 0x8201800, size = 136320992, ulen = 1083190948, dlen =
>1076703272, doff = 0, flags = 0}
>        mbdb = (DB *) 0x8201830
>        key = 0x8201810 "kervin"
>        key_len = 27
>        dbkey = {data = 0x40902f04, size = 0, ulen = 1083190996, dlen =
>1077653269, doff = 136315536, flags = 136320992}
>        data = {data = 0x8201800, size = 136320992, ulen = 1083190948, dlen =
>1076703272, doff = 0, flags = 0}
>        mbdb = (DB *) 0x8201830
>...
>...
>
>--Kervin