[BACK]Return to doas.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / doas

Diff for /src/usr.bin/doas/doas.c between version 1.32 and 1.33

version 1.32, 2015/07/29 00:00:31 version 1.33, 2015/07/30 17:04:33
Line 80 
Line 80 
         return 0;          return 0;
 }  }
   
 static gid_t  static int
 strtogid(const char *s)  parsegid(const char *s, gid_t *gid)
 {  {
         struct group *gr;          struct group *gr;
         const char *errstr;          const char *errstr;
         gid_t gid;  
   
         if ((gr = getgrnam(s)) != NULL)          if ((gr = getgrnam(s)) != NULL) {
                 return gr->gr_gid;                  *gid = gr->gr_gid;
         gid = strtonum(s, 0, GID_MAX, &errstr);                  return 0;
           }
           *gid = strtonum(s, 0, GID_MAX, &errstr);
         if (errstr)          if (errstr)
                 return -1;                  return -1;
         return gid;          return 0;
 }  }
   
 static int  static int
Line 102 
Line 103 
         int i;          int i;
   
         if (r->ident[0] == ':') {          if (r->ident[0] == ':') {
                 gid_t rgid = strtogid(r->ident + 1);                  gid_t rgid;
                 if (rgid == -1)                  if (parsegid(r->ident + 1, &rgid) == -1)
                         return 0;                          return 0;
                 for (i = 0; i < ngroups; i++) {                  for (i = 0; i < ngroups; i++) {
                         if (rgid == groups[i])                          if (rgid == groups[i])

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33