[1501] in Kerberos

home help back first fref pref prev next nref lref last post

"req_act_vno" in V4 lib/krb/cr_err_reply.c

daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Thu Aug 8 17:26:44 1991

Date: 8 Aug 91 20:36:47 GMT
From: jik@cats.ucsc.edu (Jonathan I. Kamens)
To: kerberos@shelby.Stanford.EDU

(I'm using the most recent Kerberos V4 sources in the MIT source tree.)

The file lib/krb/cr_err_reply.c in the Kerberos sources contains the following
snippet of code:

extern int req_act_vno;		/* this is defined in the kerberos
				 * server code */

The variable req_act_vno is used in the cr_err_reply function in that file,
and it is, indeed, declared in server/kerberos.c.

I'm trying to make Kerberos V4 work with shared libraries under SunOS 4.1.1. 
One of the "features" of shared libraries is that you aren't allowed to have
undefined symbols in *any* of the files in the shared library, even files that
the program you're running doesn't actually use.  This isn't a problem with
statically linked programs, since they don't actually link in the files they
don't use.

When I try to build a dynamic Kerberos library and link a Kerberos program to
it, the program won't run because ld.so announces that req_act_vno is
undefined.

Now, it seems to me that the simple solution to this problem is to take
cr_err_reply.c out of the Kerberos library and put it into the server only.  I
can't imagine how this could possibly break anything, since nothing else
besides the server can use the file anyway, because of the undefined variable.

My questions are, therefore: (1) Why was this file placed in the library
instead of the server, and (2) Will anything break if I move it to the server?

Thanks for any help you can provide....

-- 
Jonathan Kamens					jik@CATS.UCSC.EDU

home help back first fref pref prev next nref lref last post