2009-11-28 Jim Meyering <meyering@redhat.com>
+ userspec: disallow an ID that maps to (uid_t)-1 or (gid_t)-1
+ * lib/userspec.c (parse_with_separator): Do not accept a user ID
+ number of MAXUID when it evaluates to (uid_t) -1.
+ Likewise for group ID. Reported by Matt McCutchen in
+ <http://savannah.gnu.org/bugs/?28113>
+
userspec: reformat to use spaces, not TABs
* lib/userspec.c: Expand TABs to spaces.
Add Emacs' "indent-tabs-mode: nil" hint.
{
unsigned long int tmp;
if (xstrtoul (u, NULL, 10, &tmp, "") == LONGINT_OK
- && tmp <= MAXUID)
+ && tmp <= MAXUID && (uid_t) tmp != (uid_t) -1)
unum = tmp;
else
error_msg = E_invalid_user;
if (grp == NULL)
{
unsigned long int tmp;
- if (xstrtoul (g, NULL, 10, &tmp, "") == LONGINT_OK && tmp <= MAXGID)
+ if (xstrtoul (g, NULL, 10, &tmp, "") == LONGINT_OK
+ && tmp <= MAXGID && (gid_t) tmp != (gid_t) -1)
gnum = tmp;
else
error_msg = E_invalid_group;