Mercurial > hg > octave-nkf > gnulib-hg
changeset 12373:3cbb46b89edf
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>
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Sat, 28 Nov 2009 07:33:16 +0100 |
parents | d3dfa66dec26 |
children | 5a0b2165f31b |
files | ChangeLog lib/userspec.c |
diffstat | 2 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 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.
--- a/lib/userspec.c +++ b/lib/userspec.c @@ -169,7 +169,7 @@ { 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; @@ -200,7 +200,8 @@ 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;