[1501] in Kerberos
"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