diff options
author | Richard Basch <probe@mit.edu> | 1996-05-06 16:19:33 +0000 |
---|---|---|
committer | Richard Basch <probe@mit.edu> | 1996-05-06 16:19:33 +0000 |
commit | 12734daa44c8e63df27fcfb6d26636bac68e4819 (patch) | |
tree | 588925e1c6bc5f881625a3e6a35a5c42ef0d7268 /src/lib/krb5/krb/srv_rcache.c | |
parent | d7843946dff02b1121b0d0df27541b63f3126521 (diff) | |
download | krb5-12734daa44c8e63df27fcfb6d26636bac68e4819.tar.gz krb5-12734daa44c8e63df27fcfb6d26636bac68e4819.tar.xz krb5-12734daa44c8e63df27fcfb6d26636bac68e4819.zip |
Include the uid in the replay cachename
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7905 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/srv_rcache.c')
-rw-r--r-- | src/lib/krb5/krb/srv_rcache.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/srv_rcache.c b/src/lib/krb5/krb/srv_rcache.c index 59fd5e2a1..ad9decc71 100644 --- a/src/lib/krb5/krb/srv_rcache.c +++ b/src/lib/krb5/krb/srv_rcache.c @@ -39,6 +39,11 @@ krb5_get_server_rcache(context, piece, rcptr) char tmp[4]; krb5_error_code retval; int len, p, i; + +#ifdef HAVE_GETEUID + unsigned long tens; + unsigned long uid = geteuid(); +#endif rcache = (krb5_rcache) malloc(sizeof(*rcache)); if (!rcache) @@ -55,6 +60,13 @@ krb5_get_server_rcache(context, piece, rcptr) else if (!isgraph(piece->data[i])) len += 3; } + +#ifdef HAVE_GETEUID + len += 2; /* _<uid> */ + for (tens = 1; (uid / tens) > 9 ; tens *= 10) + len++; +#endif + cachename = malloc(len); if (!cachename) { retval = ENOMEM; @@ -78,6 +90,15 @@ krb5_get_server_rcache(context, piece, rcptr) } cachename[p++] = piece->data[i]; } + +#ifdef HAVE_GETEUID + cachename[p++] = '_'; + while (tens) { + cachename[p++] = '0' + ((uid / tens) % 10); + tens /= 10; + } +#endif + cachename[p++] = '\0'; if ((retval = krb5_rc_resolve(context, rcache, cachename))) |