Is MIT kerberos thread safe ??

Ken Raeburn raeburn at MIT.EDU
Thu Mar 12 12:43:09 EDT 2009


On Mar 12, 2009, at 08:55, Nikhil Mishra wrote:
> As the subject says , Is MIT kerberos thread safe ?
> My device is a high performance network appliance and
> I need to analyze threadsafe-ness of MIT kerberos library.

The 1.6.x releases should be thread-safe provided certain objects are  
not shared across threads for simultaneous use, primarily the Kerberos  
and GSSAPI context types.  Various other objects, especially the  
simpler ones like krb5_data and krb5_principal, and most of the  
structures exposed in our API, can be shared as long as both uses are  
read-only.  Some more complex, opaque types like krb5_ccache, and most  
if not all internal static data, have internal locking performed  
within the libraries, so that they can be used from multiple threads  
without corruption.

Unfortunately, we don't have documentation written up on *exactly*  
what can be shared across threads and when, but "never share contexts,  
and share other stuff only as inputs not outputs" is a good guideline.

And, all the above said, there could of course be bugs; if you run  
into anything, we'd like to know.

Depending on the OS, there may also be a few bits where no thread-safe  
OS version of some functionality is available.  In particular, tty  
handling when prompting for passwords is not likely to be thread-safe  
-- but if your application is prompting for several passwords  
simultaneously, it's probably doing something else wrong.

> I have followed following links from past discussion
> forums :

[... stuff five years old ...]

The thread-safety patches were included in the 1.4 release series, not  
too long after those discussions.

Ken



More information about the krbdev mailing list