auth: Fix GetNthIdentityOrUser EOF return code
authorAndrew Deason <adeason@sinenomine.net>
Tue, 14 Oct 2014 22:02:55 +0000 (17:02 -0500)
committerD Brashear <shadow@your-file-system.com>
Wed, 5 Nov 2014 13:32:40 +0000 (08:32 -0500)
commitc36a1525f13d3900817caea7dbd0c934cc93931e
treec5d70fa30a687743ceb9a61412c8d450a4cfbf9f
parent01bbe3772734c496b64af2cd7c213cc5f6533ba6
auth: Fix GetNthIdentityOrUser EOF return code

Before commit 0af17e7e, afsconf_GetNthUser always returned 1 on
failure, to indicate to the caller that they should stop traversing
over the list. After commit 0af17e7e, when reaching the end of the
list, we return EIO or -1. This causes 'bos listusers' invocations to
always fail, since 'bos' clients expect to get the code 1 when
reaching the end of the SUsers list.

To fix this, make GetNthIdentityOrUser always return -1 when searching
beyond the end of the list. For the newer interface
afsconf_GetNthIdentity, we return this as-is, to have a separate
return code specifically for EOF, but still allowing us to return any
positive error code in case of an error.

For the older interface afsconf_GetNthUser, return 1 in this
situation, to retain compatibility with the old interface (both at the
libauth level and on the wire).

Change-Id: I2db4760440d7846dc290a05fa24e24ec97a02f12
Reviewed-on: http://gerrit.openafs.org/7377
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: D Brashear <shadow@your-file-system.com>
src/auth/userok.c