[2422] in Kerberos_V5_Development

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

Re: Kerberos V4 Re-entrancy Question and a Solaris threaded server.

daemon@ATHENA.MIT.EDU (Jeffery D. Jacobson)
Wed Jul 9 22:22:53 1997

Date: Wed, 9 Jul 1997 19:21:58 -0700
From: jdj@busstop.jpl.nasa.gov (Jeffery D. Jacobson)
To: epeisach@MIT.EDU
Cc: krbdev@MIT.EDU, tytso@MIT.EDU, jdj@busstop.jpl.nasa.gov
In-Reply-To: <9707100123.AA06132@kangaroo.mit.edu> (message from Ezra Peisach on Wed, 09 Jul 1997 21:23:57 EDT)




Hi Esra,

Thanks for you're quick reply.  The code is calling rd_req, getting
the service key from the default srvtab!  krb_set_key will work for
me.  I'll make that change.  There is no reason to go to srvtab each
time.  That'll take care of the service-key MT unsafe problem.  But, I
notice int the rd_req () code:

    static int swap_bytes;      /* Need to swap bytes? */
    static int mutual;          /* Mutual authentication requested? */
    static unsigned char s_kvno;/* Version number of the server's key

     .
     .
     .
    /* byte order */
    swap_bytes = 0;
    if ((*ptr & 1) != HOST_BYTE_ORDER)
        swap_bytes++;

    /* check msg type */
    mutual = 0;
    switch (*ptr++ & ~1) 


etc, and this doesn't look safe.  So, I maybe I should "mutex"
krb_rd_req, but use your set_key suggestion.  In this way, rd_req will
do no I/O, so my critical section shouldn't be too bad.  Unless of
course, I've missed something there, rd_req going to the kerberos
server or something which would surprise me.

Jeff Jacobson                      Tel:818.354.8318 Fax:818.393.6962 
Jet Propulsion Laboratory          Mailstop: 168-414
4800 Oak Grove Drive
Pasadena, CA 91109

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