summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2008-05-05 14:43:57 +0200
committerVolker Lendecke <vl@samba.org>2008-05-05 14:46:03 +0200
commit50c891d3dfb75c9f607f7ad2a578aa3ba5d91988 (patch)
treed7a90992059dfe51078d8a0b605310ab559c05eb
parent1b1614c3261e1e93a2cad1f1063e28cbbb13f434 (diff)
downloadsamba-50c891d3dfb75c9f607f7ad2a578aa3ba5d91988.tar.gz
samba-50c891d3dfb75c9f607f7ad2a578aa3ba5d91988.tar.xz
samba-50c891d3dfb75c9f607f7ad2a578aa3ba5d91988.zip
Fix allocation of conn->vuid_cache entries
With the old code, if more than VUID_CACHE_SIZE elements were used all new entries ended up in slot 0. With this checkin we do cycle. Jeremy, please revert if the old behaviour was intentional
-rw-r--r--source/smbd/uid.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/source/smbd/uid.c b/source/smbd/uid.c
index ffa643a8f56..343a0cf4905 100644
--- a/source/smbd/uid.c
+++ b/source/smbd/uid.c
@@ -123,9 +123,9 @@ static bool check_user_ok(connection_struct *conn, user_struct *vuser,int snum)
return False;
}
- i = conn->vuid_cache.entries % VUID_CACHE_SIZE;
- if (conn->vuid_cache.entries < VUID_CACHE_SIZE)
- conn->vuid_cache.entries++;
+ i = conn->vuid_cache.entries;
+ conn->vuid_cache.entries =
+ (conn->vuid_cache.entries + 1) % VUID_CACHE_SIZE;
ent = &conn->vuid_cache.array[i];
ent->vuid = vuser->vuid;