summaryrefslogtreecommitdiffstats
path: root/src/slave
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2013-01-25 18:59:09 -0500
committerGreg Hudson <ghudson@mit.edu>2013-01-25 20:06:50 -0500
commit2743fdee849be4a00a9ea72d601004c95b22dd56 (patch)
treea5bb770797ce9f6888dcf2b47c5acd43cd0ee0d4 /src/slave
parent74bee54227deb64a41c2e79f57dd2a2c5ea010a3 (diff)
downloadkrb5-2743fdee849be4a00a9ea72d601004c95b22dd56.tar.gz
krb5-2743fdee849be4a00a9ea72d601004c95b22dd56.tar.xz
krb5-2743fdee849be4a00a9ea72d601004c95b22dd56.zip
Make kproplog handle underfull iprop logs
kproplog currently assumes that an iprop log is full once it has circled--which is true right now but will need to change for hierarchical slaves. Avoid this assumption by using the correct index modulus in print_update whether or not the log is full. Based on a patch from Richard Basch <basch@alum.mit.edu>.
Diffstat (limited to 'src/slave')
-rw-r--r--src/slave/kproplog.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/slave/kproplog.c b/src/slave/kproplog.c
index fc4c559e47..67ff154338 100644
--- a/src/slave/kproplog.c
+++ b/src/slave/kproplog.c
@@ -400,7 +400,8 @@ print_attr(kdbe_val_t *val, int vverbose)
* Print the update entry information
*/
static void
-print_update(kdb_hlog_t *ulog, uint32_t entry, unsigned int verbose)
+print_update(kdb_hlog_t *ulog, uint32_t entry, uint32_t ulogentries,
+ unsigned int verbose)
{
XDR xdrs;
uint32_t start_sno, i, j, indx;
@@ -414,7 +415,7 @@ print_update(kdb_hlog_t *ulog, uint32_t entry, unsigned int verbose)
start_sno = ulog->kdb_first_sno - 1;
for (i = start_sno; i < ulog->kdb_last_sno; i++) {
- indx = i % ulog->kdb_num;
+ indx = i % ulogentries;
indx_log = (kdb_ent_header_t *)INDEX(ulog, indx);
@@ -621,7 +622,7 @@ main(int argc, char **argv)
}
if ((!headeronly) && ulog->kdb_num) {
- print_update(ulog, entry, verbose);
+ print_update(ulog, entry, params.iprop_ulogsize, verbose);
}
(void) printf("\n");