[krbdev.mit.edu #6411] MSLSA get next cred functionality

Jeffrey Altman via RT rt at krbdev.mit.edu
Thu Mar 12 08:07:30 EDT 2009


krb5_lcc_next_cred() has several problems:

1. its supposed to return the next cred and therefore if there is an
error while reading/parsing a ticket it is supposed to skip the error
and try the next ticket.  It fails to do this correctly.

2. if an error occurs it sets retval to KRB5_FCC_INTERNAL.  if it is
able to obtain a subsequent ticket.  It does not clear the error value
which in turn breaks the caller.

3. when an error does occur the cause of the error is lost.  a
descriptive error should be provided 

4. there is a race between when the enumeration is generated in
krb5_lcc_start_seq_get() and when the tickets are read.  If the tickets
are removed in between the KRB5_FCC_INTERNAL error is thrown.  We can't
avoid the race entirely but it might be useful to parse all of the
tickets in krb5_lcc_start_seq_get() and then just hand them out.  On the
other hand this approach would perform unneeded expensive work if the
app only required the first ticket in the cache.

5. a more general problem.  there is no validation that the 'id' and
'cursor' inputs are non-NULL.




More information about the kfwdev mailing list