diff options
author | Ken Raeburn <raeburn@mit.edu> | 2002-03-07 01:54:59 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2002-03-07 01:54:59 +0000 |
commit | e30a561176bd8e146e551875d9d590c3f7797923 (patch) | |
tree | 2dd2c88e18116e8bb4691045e545cb373559eeb6 /src/kadmin | |
parent | a77d12efc9c20254e736d4e828b2413901938fc7 (diff) | |
download | krb5-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')
-rw-r--r-- | src/kadmin/ktutil/ChangeLog | 5 | ||||
-rw-r--r-- | src/kadmin/ktutil/ktutil_funcs.c | 15 |
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 |