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

MIT Kerberos and krb5_free_creds_contents (ITS#715)

Full_Name: Norbert Klasen
Version: 2.0.1
OS: Linux
Submission from: (NULL) (

Building OpenLDAP 2.0.1 mit MIT Kerberos 1.1.1 results in the following error:

cc -g -O2 -I../../include -I../../include -I/usr/kerberos/include/
-L/home/zrdkn01/da/tools/openldap-2.0.1/libraries -L/usr/kerberos/lib/
-L/usr/local/BerkeleyDB.3.1/lib/ -o slapd main.o daemon.o connection.o search.o
filter.o add.o charray.o attr.o entry.o config.o backend.o result.o operation.o
dn.o compare.o modify.o delete.o modrdn.o ch_malloc.o value.o ava.o bind.o
unbind.o abandon.o filterentry.o phonetic.o acl.o str2filter.o aclparse.o init.o
user.o repl.o lock.o controls.o extended.o kerberos.o passwd.o schema.o
schema_check.o schema_init.o schema_prep.o schemaparse.o ad.o at.o mr.o syntax.o
oc.o monitor.o configinfo.o starttls.o index.o sets.o root_dse.o sasl.o module.o
suffixalias.o version.o libbackends.a -lavl -lldbm -lldif -llutil -lldap_r
-llber -ldb -lsasl -lkrb4 -ldes425 -lkrb5 -lcrypto -lcom_err -lssl -lcrypto
-lcrypt -lresolv -pthread
/home/zrdkn01/da/tools/openldap-2.0.1/libraries/liblutil.a(passwd.o): In
function `chk_kerberos':
/home/zrdkn01/da/tools/openldap-2.0.1/libraries/liblutil/passwd.c:754: undefined
reference to `krb5_free_creds_contents'
collect2: ld returned 1 exit status
make[2]: *** [slapd] Error 1
make[2]: Leaving directory

I have not found "krb5_free_creds_contents" in any of the include files. There
however a "krb5_free_cred_contents". Heimdal has both (in krb5-protos.h). 

>From lib/krb5/creds.c:

krb5_free_cred_contents (krb5_context context, krb5_creds *c)
    return krb5_free_creds_contents (context, c);

As "krb5_free_cred_contents" seems to be a wrapper to
I suggest using it, so OpenLDAP could be compiled with both Kerberos versions.

diff -u -r1.46 passwd.c
--- libraries/liblutil/passwd.c 2000/08/14 23:55:43     1.46
+++ libraries/liblutil/passwd.c 2000/09/06 12:29:58
@@ -751,7 +751,7 @@

                krb5_free_principal( context, client );
                krb5_free_principal( context, server );
-               krb5_free_creds_contents( context, &creds );
+               krb5_free_cred_contents( context, &creds );
                krb5_free_context( context );

                rtn = !!ret;