Skip Menu |
 

Date: Mon, 20 Aug 2007 10:45:31 -0700 (PDT)
From: Brian Kantor <brian@karoshi.ucsd.edu>
To: krb5-bugs@mit.edu
Subject: compilation problem krb5-1.6.2 on FreeBSD 6.1-RELEASE - missing subroutine
Missing subroutine: krb5_db_set_name()

krb5-1.6.2/src/kdc/do_as_req.c line 488
and
krb5-1.6.2/src/kadmin/dbutil/loadv4.c line 259

both refer to a non-existent subroutine
krb5_db_set_name()

in kdc/do_as_req.c this is only encountered if KRBCONF_KDC_MODIFIES_KDB
is defined (as a result of configure --with-kdc-kdb-update).


src/kadmin/dbutil/loadv4.c isn't even in the Makefile,
so no attempt is make to compile it.
- Brian
Subject: Problem compiling krb5 1.6.3
[...]
making all in kdc...
make[1]: Entering directory `/tmp/krb5-1.6.3/src/kdc'
gcc -L../lib -Wl,-rpath -Wl,/usr/local/lib -s -O3 -march=i686 -o krb5kdc kdc5_err.o
dispatch.o do_as_req.o do_tgs_req.o kdc_util.o kdc_preauth.o main.o network.o policy.o
extern.o replay.o kerberos_v4.o -lkadm5srv -lhesiod -lkdb5 -lgssrpc -lgssapi_krb5 -
lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err -lkrb5support -lresolv -ldl -lapputils
do_as_req.o: In function `process_as_req':
do_as_req.c:(.text+0x806): undefined reference to `krb5_db_init'
do_as_req.c:(.text+0x96a): undefined reference to `krb5_db_set_name'
collect2: ld returned 1 exit status
make[1]: *** [krb5kdc] Error 1
make[1]: Leaving directory `/tmp/krb5-1.6.3/src/kdc'
make: *** [all-recurse] Error 1
[guest - Sun Nov 25 10:23:44 2007]:

Show quoted text
> [...]
> making all in kdc...
> make[1]: Entering directory `/tmp/krb5-1.6.3/src/kdc'
> gcc -L../lib -Wl,-rpath -Wl,/usr/local/lib -s -O3 -march=i686 -o
> krb5kdc kdc5_err.o
> dispatch.o do_as_req.o do_tgs_req.o kdc_util.o kdc_preauth.o main.o
> network.o policy.o
> extern.o replay.o kerberos_v4.o -lkadm5srv -lhesiod -lkdb5 -lgssrpc
> -lgssapi_krb5 -
> lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err -lkrb5support -lresolv
> -ldl -lapputils
> do_as_req.o: In function `process_as_req':
> do_as_req.c:(.text+0x806): undefined reference to `krb5_db_init'
> do_as_req.c:(.text+0x96a): undefined reference to `krb5_db_set_name'
> collect2: ld returned 1 exit status
> make[1]: *** [krb5kdc] Error 1
> make[1]: Leaving directory `/tmp/krb5-1.6.3/src/kdc'
> make: *** [all-recurse] Error 1

This seems related to the use of the --with-kdc-kdb-update option
From: ryan.lange@L-3com.com
Subject: KDC -with-kdc-kdb-update
Date: Wed, 5 Dec 2007 18:25:23 -0600
To: <krb5-bugs@mit.edu>
Download (untitled) / with headers
text/plain 1.3KiB
Kerberos Team,
 
I've been using Kerberos for about 6 months now and have a handle on the parts I am interested in.  I appreciate all of your hard work.  I've played with some parts of the code to understand how things work.  I have found a definite bug that exists in at least krb5-1.6 and the current release krb5-1.6.3.  My configuration settings are below.  The problem exists within the Pre-Authentication section of the KDC.  Specifically in do_as_req.c.  The section of code that is just below the comment "ptooey.  We want krb5_db_sync() or something like that." does not compile because a couple of these functions no longer exist.  Example: cd to krb5-1.6.3/src and perform the grep commands listed below.
 
configure -without-krb4 -with-ldap -with-kdc-kdb-update
make
 
Make fails on the KDC.
 
grep krb5_db_set_name -r *
grep krb5_db_init -r *
 
There is a prototype for init, but no function exists and set_name is clearly not there at all.
 
FYI:  I am using an Intel Linux machine to host the KDC and using OS X 10.4.10 as a client.  On another note: I am not sure why, but the code within do_as_req.c gets executed twice under my setup when an incorrect password is entered on the client.  I suspect a problem within OS X since using an incorrect password within kinit only executes the code once.
 
 
Thanks for your time,
Ryan Lange
Sr. Software Eng.
L-3 Communications IS
 
 
this ticket was sent to kfw instead of krb5 where it belongs.
I just checked in revision 22518 on the trunk which makes most of the relevant code get
compiled all the time, so we shouldn't see this problem resurface, and I think I've fixed up the
necessary changes in function calls. If you're willing to try it out, please let me know of any
problems.

The code is still only enabled with a configure-time option, which we probably want to change
someday.
From: tlyu@mit.edu
Subject: SVN Commit
Download (untitled) / with headers
text/plain 1.2KiB

pull up r22518 from trunk

------------------------------------------------------------------------
r22518 | raeburn | 2009-08-12 13:58:24 -0400 (Wed, 12 Aug 2009) | 19 lines

r22529@squish: raeburn | 2009-08-12 13:49:45 -0400
.
r22530@squish: raeburn | 2009-08-12 13:55:57 -0400
Change KRBCONF_KDC_MODIFIES_KDB to a mostly run-time option.

Change all code conditionals to test a new global variable, the
initial value of which is based on KRBCONF_KDC_MODIFIES_KDB. There is
currently no way to alter the value from the command line; that will
presumably be desired later.

Change initialize_realms to store db_args in a global variable. In
process_as_req, call db_open instead of the old set_name + init.
Don't reopen if an error is reported by krb5_db_fini.

Add a test of running kinit with an incorrect password, to trigger a
kdb update if enabled.
r22531@squish: raeburn | 2009-08-12 13:58:13 -0400
Fix trailing whitespace.

https://github.com/krb5/krb5/commit/b4a9656b925dcf27e9c642515abe5615bc2b319e
Commit By: tlyu
Revision: 23647
Changed Files:
U branches/krb5-1-7/src/kdc/do_as_req.c
U branches/krb5-1-7/src/kdc/extern.c
U branches/krb5-1-7/src/kdc/extern.h
U branches/krb5-1-7/src/kdc/main.c
U branches/krb5-1-7/src/tests/dejagnu/krb-standalone/standalone.exp