[OpenAFS-devel] More on the PAM modules, pthreads, and other joys

Jeffrey Hutzelman jhutz@cmu.edu
Mon, 15 Aug 2005 18:10:28 -0400


On Monday, August 15, 2005 01:08:09 PM -0400 Chaskiel M Grundman 
<cg2v@andrew.cmu.edu> wrote:

> --On Monday, August 15, 2005 08:37:49 AM -0400 Jeffrey Altman
> <jaltman@columbia.edu> wrote:
>
>> Modules or applications that make use of rx must call rx_Init().
>> Adding rx_Init() to the PAM module is the appropriate thing to do.
>
> While this is true in the general case, it's not how the kauth library
> and its applications were written. When klog is run, it defers calling
> rx_Init until ka_SingleServerConn / ka_AuthSpecificServersConn /
> ka_AuthServerConn are called, which does not occur until after des is
> used to do the string to key operation.
>
> While changing this is not necessarily a bad thing, it should not be
> asserted that the existing code is just wrong.

More generally, it is not reasonable to assert that code which uses the DES 
API's (in this case, des_string_to_key) without calling rx_Init is broken. 
First, the DES API, which is not unique to AFS, does not have this 
requirement.  Second, rx_Init has significant side-effects, which should 
not be incurred for things that just want to use the DES library.

The brokenness here is in the DES library, and its inappropriate 
dependencies on rx and rxkad.  Fix that, and the other problems will go 
away.

-- Jeff