summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard Basch <probe@mit.edu>1996-05-06 16:19:33 +0000
committerRichard Basch <probe@mit.edu>1996-05-06 16:19:33 +0000
commit12734daa44c8e63df27fcfb6d26636bac68e4819 (patch)
tree588925e1c6bc5f881625a3e6a35a5c42ef0d7268 /src
parentd7843946dff02b1121b0d0df27541b63f3126521 (diff)
downloadkrb5-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')
-rw-r--r--src/lib/krb5/krb/ChangeLog7
-rw-r--r--src/lib/krb5/krb/configure.in2
-rw-r--r--src/lib/krb5/krb/srv_rcache.c21
3 files changed, 29 insertions, 1 deletions
diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog
index 374796dc9..4d1246968 100644
--- a/src/lib/krb5/krb/ChangeLog
+++ b/src/lib/krb5/krb/ChangeLog
@@ -36,6 +36,13 @@ Thu May 2 22:48:56 1996 Mark Eichin <eichin@cygnus.com>
that specifies that the "invalid flag" doesn't get checked. (This
version is only called from kdc_util.c:kdc_process_tgs_req.)
+Wed May 1 14:30:29 1996 Richard Basch <basch@lehman.com>
+
+ * srv_rcache.c (krb5_get_server_rcache): include the uid in the
+ default server replay cachename, for systems with geteuid.
+
+ * configure.in: test if the system has geteuid()
+
Wed May 1 02:26:53 1996 Mark Eichin <eichin@cygnus.com>
* str_conv.c (krb5_string_to_timestamp): double check that
diff --git a/src/lib/krb5/krb/configure.in b/src/lib/krb5/krb/configure.in
index 7e3e2e9c4..4a3ea5ab9 100644
--- a/src/lib/krb5/krb/configure.in
+++ b/src/lib/krb5/krb/configure.in
@@ -5,7 +5,7 @@ AC_PROG_ARCHIVE_ADD
AC_PROG_RANLIB
AC_HEADER_STDARG
V5_SHARED_LIB_OBJS
-AC_HAVE_FUNCS(strftime strptime)
+AC_HAVE_FUNCS(strftime strptime geteuid)
KRB5_RUN_FLAGS
SubdirLibraryRule([$(OBJS)])
USE_ANAME
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)))