summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/rcache/rc_dfl.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/lib/krb5/rcache/rc_dfl.c b/src/lib/krb5/rcache/rc_dfl.c
index d3f9aa846..63b923823 100644
--- a/src/lib/krb5/rcache/rc_dfl.c
+++ b/src/lib/krb5/rcache/rc_dfl.c
@@ -64,12 +64,13 @@ static int rc_store(context, krb5_rcache id, krb5_donot_replay *rep)
* dfl_recover.
*/
-static int
-hash(krb5_donot_replay *rep, int hsize)
+static unsigned int
+hash(krb5_donot_replay *rep, unsigned int hsize)
{
- return (int) ((((rep->cusec + rep->ctime + *rep->server + *rep->client)
- % hsize) + hsize) % hsize);
- /* We take this opportunity to once again complain about C's idiotic %. */
+ unsigned int h = rep->cusec + rep->ctime;
+ h += *rep->server;
+ h += *rep->client;
+ return h % hsize;
}
#define CMP_MALLOC -3
@@ -104,7 +105,7 @@ struct dfl_data
{
char *name;
krb5_deltat lifespan;
- int hsize;
+ unsigned int hsize;
int numhits;
int nummisses;
struct authlist **h;
@@ -130,7 +131,7 @@ rc_store(krb5_context context, krb5_rcache id, krb5_donot_replay *rep,
krb5_int32 now)
{
struct dfl_data *t = (struct dfl_data *)id->data;
- int rephash;
+ unsigned int rephash;
struct authlist *ta;
rephash = hash(rep, t->hsize);
@@ -614,7 +615,7 @@ krb5_rc_dfl_expunge_locked(krb5_context context, krb5_rcache id)
{
struct dfl_data *t = (struct dfl_data *)id->data;
#ifdef NOIOSTUFF
- int i;
+ unsigned int i;
struct authlist **q;
struct authlist **qt;
struct authlist *r;