]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
pioctl: limit fruitless token searches
authorMark Vitale <mvitale@sinenomine.net>
Thu, 23 May 2019 02:52:10 +0000 (22:52 -0400)
committerStephan Wiesand <stephan.wiesand@desy.de>
Thu, 25 Jul 2019 11:18:51 +0000 (07:18 -0400)
getNthCell searches the afs_users table for the nth token set belonging to a
given user.  However, it is impossible for a user to have more than one
token set per cell.  If the caller specifies a number greater than the
total number of cells this cache manager knows about, we know the search
will be fruitless.

Instead, return early in this case, avoiding both the lock and the
search.

Reviewed-on: https://gerrit.openafs.org/13597
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Tested-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
(cherry picked from commit fc7e1700fe84f623fb9163466d24226df00b1a2c)

Change-Id: Idfda263af173a7ca081fcea3eef0ec4a63e66eda
Reviewed-on: https://gerrit.openafs.org/13639
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/afs/afs_pioctl.c

index cfc79a2b77175e46c1cfd5155ecdfe1f19019c0b..8af2749ae2297dce6a41cb1803398ccd3ed76172 100644 (file)
@@ -2274,6 +2274,9 @@ getNthCell(afs_int32 uid, afs_int32 iterator) {
     int i;
     struct unixuser *tu = NULL;
 
+    if (iterator > afs_cellindex)
+       return NULL;            /* no point in looking */
+
     i = UHash(uid);
     ObtainReadLock(&afs_xuser);
     for (tu = afs_users[i]; tu; tu = tu->next) {