aboutsummaryrefslogtreecommitdiff
path: root/src/kadmin/ktutil
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2002-03-07 01:54:59 +0000
committerKen Raeburn <raeburn@mit.edu>2002-03-07 01:54:59 +0000
commite30a561176bd8e146e551875d9d590c3f7797923 (patch)
tree2dd2c88e18116e8bb4691045e545cb373559eeb6 /src/kadmin/ktutil
parenta77d12efc9c20254e736d4e828b2413901938fc7 (diff)
downloadkrb5-e30a561176bd8e146e551875d9d590c3f7797923.zip
krb5-e30a561176bd8e146e551875d9d590c3f7797923.tar.gz
krb5-e30a561176bd8e146e551875d9d590c3f7797923.tar.bz2
8-bit-kvno workarounds from 1.2.4
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14243 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kadmin/ktutil')
-rw-r--r--src/kadmin/ktutil/ChangeLog5
-rw-r--r--src/kadmin/ktutil/ktutil_funcs.c15
2 files changed, 17 insertions, 3 deletions
diff --git a/src/kadmin/ktutil/ChangeLog b/src/kadmin/ktutil/ChangeLog
index e3b63c3..8f4bd7a 100644
--- a/src/kadmin/ktutil/ChangeLog
+++ b/src/kadmin/ktutil/ChangeLog
@@ -1,3 +1,8 @@
+
+ * ktutil_funcs.c (ktutil_write_srvtab): When keeping only
+ highest-numbered kvno, with some heuristics to deal with
+ wrap-around at 256.
+
2002-03-02 Sam Hartman <hartmans@mit.edu>
* ktutil_funcs.c (ktutil_write_srvtab): Set umask to 077 to avoid
diff --git a/src/kadmin/ktutil/ktutil_funcs.c b/src/kadmin/ktutil/ktutil_funcs.c
index 3d8f0d6..073b036 100644
--- a/src/kadmin/ktutil/ktutil_funcs.c
+++ b/src/kadmin/ktutil/ktutil_funcs.c
@@ -504,9 +504,18 @@ krb5_error_code ktutil_write_srvtab(context, list, name)
lp1 = prev->next;
}
lp1->entry = lp->entry;
- } else if (lp1->entry->vno < lp->entry->vno)
- /* Check if lp->entry is newer kvno; if so, update */
- lp1->entry = lp->entry;
+ } else {
+ /* This heuristic should be roughly the same as in the
+ keytab-reading code in libkrb5. */
+ int offset = 0;
+ if (lp1->entry->vno > 240 || lp->entry->vno > 240) {
+ offset = 128;
+ }
+#define M(X) (((X) + offset) % 256)
+ if (M(lp1->entry->vno) < M(lp->entry->vno))
+ /* Check if lp->entry is newer kvno; if so, update */
+ lp1->entry = lp->entry;
+ }
}
umask(0077); /*Changing umask for all of ktutil is OK
* We don't ever write out anything that should use