[665] in Kerberos-V5-bugs

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

bug in src/lib/krb5/rcache/rc_dfl.c

daemon@ATHENA.MIT.EDU (Paul Pomes)
Fri Aug 19 12:06:20 1994

Date: Fri, 19 Aug 1994 11:06:11 -0500
From: Paul Pomes <P-Pomes@uiuc.edu>
To: krb5-bugs@MIT.EDU

In  krb5_rc_dfl_expunge() for the case where NOIOSTUFF is not defined,

    struct authlist *q;
    char *name = t->name;
    krb5_error_code retval;
    krb5_rcache tmp;
    krb5_deltat lifespan = t->lifespan;  /* save original lifespan */

    (void) krb5_rc_dfl_close_no_free(id);

When this function is called, it does a

 if (t->name)
     FREE(t->name);

So name back in krb5_rc_dfl_expunge() becomes null.  This generated the
error

krb5kdc[21236]: Permission denied in replay cache code while expunging replay cache 'dfl:'

Because the subsequent krb5_rc_io_open() would try to open "/usr/tmp/".
I changed the code to be instead

    struct authlist *q;
    char *name;
    krb5_error_code retval;
    krb5_rcache tmp;
    krb5_deltat lifespan = t->lifespan;  /* save original lifespan */

    name = strdup(t->name);
    (void) krb5_rc_dfl_close_no_free(id);

Which seems to work for now.

/pbp

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