[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.90 and 1.91

version 1.90, 2021/07/12 15:09:19 version 1.91, 2021/09/07 13:46:07
Line 199 
Line 199 
         }          }
 }  }
   
 static void  static int
 authuser(char *myname, char *login_style, int persist)  authuser(char *myname, char *login_style, int persist)
 {  {
         char *challenge = NULL, *response, rbuf[1024], cbuf[128];          char *challenge = NULL, *response, rbuf[1024], cbuf[128];
Line 214 
Line 214 
         }          }
   
         if (!(as = auth_userchallenge(myname, login_style, "auth-doas",          if (!(as = auth_userchallenge(myname, login_style, "auth-doas",
             &challenge)))              &challenge))) {
                 errx(1, "Authentication failed");                  warnx("Authentication failed");
                   return AUTH_FAILED;
           }
         if (!challenge) {          if (!challenge) {
                 char host[HOST_NAME_MAX + 1];                  char host[HOST_NAME_MAX + 1];
                 if (gethostname(host, sizeof(host)))                  if (gethostname(host, sizeof(host)))
Line 235 
Line 237 
                 explicit_bzero(rbuf, sizeof(rbuf));                  explicit_bzero(rbuf, sizeof(rbuf));
                 syslog(LOG_AUTHPRIV | LOG_NOTICE,                  syslog(LOG_AUTHPRIV | LOG_NOTICE,
                     "failed auth for %s", myname);                      "failed auth for %s", myname);
                 errx(1, "Authentication failed");                  warnx("Authentication failed");
                   return AUTH_FAILED;
         }          }
         explicit_bzero(rbuf, sizeof(rbuf));          explicit_bzero(rbuf, sizeof(rbuf));
 good:  good:
Line 244 
Line 247 
                 ioctl(fd, TIOCSETVERAUTH, &secs);                  ioctl(fd, TIOCSETVERAUTH, &secs);
                 close(fd);                  close(fd);
         }          }
   
           return AUTH_OK;
 }  }
   
 int  int
Line 306 
Line 311 
         int i, ch, rv;          int i, ch, rv;
         int sflag = 0;          int sflag = 0;
         int nflag = 0;          int nflag = 0;
           int authed = AUTH_FAILED;
         char cwdpath[PATH_MAX];          char cwdpath[PATH_MAX];
         const char *cwd;          const char *cwd;
         char *login_style = NULL;          char *login_style = NULL;
Line 408 
Line 414 
                 if (nflag)                  if (nflag)
                         errx(1, "Authentication required");                          errx(1, "Authentication required");
   
                 authuser(mypw->pw_name, login_style, rule->options & PERSIST);                  for (i = 0; i < AUTH_RETRIES; i++) {
                           authed = authuser(mypw->pw_name, login_style,
                               rule->options & PERSIST);
                           if (authed == AUTH_OK)
                                   break;
                   }
   
                   if (authed != AUTH_OK)
                           exit(1);
         }          }
   
         if ((p = getenv("PATH")) != NULL)          if ((p = getenv("PATH")) != NULL)

Legend:
Removed from v.1.90  
changed lines
  Added in v.1.91