Fix off by one in group matching.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 2 Aug 2007 02:08:39 +0000 (02:08 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 2 Aug 2007 02:08:39 +0000 (02:08 +0000)
match.c

diff --git a/match.c b/match.c
index ea52824afa3c0fef0d0514712472e70f2951ad17..ded6381445c34d10bd151a4f612769da54e86337 100644 (file)
--- a/match.c
+++ b/match.c
@@ -514,7 +514,7 @@ usergr_matches(group, user, pw)
 {
     struct group *grp;
     char **cur;
-    int n;
+    int i;
 
     /* make sure we have a valid usergroup, sudo style */
     if (*group++ != '%')
@@ -536,8 +536,8 @@ usergr_matches(group, user, pw)
      * supplementary group vector, check it first.
      */
     if (strcmp(user, list_pw ? list_pw->pw_name : user_name) == 0) {
-       for (n = user_ngroups; n != 0; n--)
-           if (grp->gr_gid == user_groups[n])
+       for (i = 0; i < user_ngroups; i++)
+           if (grp->gr_gid == user_groups[i])
                return(TRUE);
     }
     if (grp->gr_mem != NULL) {