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

Diff for /src/usr.bin/ssh/readpass.c between version 1.53 and 1.54

version 1.53, 2019/01/19 04:15:56 version 1.54, 2019/06/28 13:35:04
Line 58 
Line 58 
                 error("ssh_askpass: fflush: %s", strerror(errno));                  error("ssh_askpass: fflush: %s", strerror(errno));
         if (askpass == NULL)          if (askpass == NULL)
                 fatal("internal error: askpass undefined");                  fatal("internal error: askpass undefined");
         if (pipe(p) < 0) {          if (pipe(p) == -1) {
                 error("ssh_askpass: pipe: %s", strerror(errno));                  error("ssh_askpass: pipe: %s", strerror(errno));
                 return NULL;                  return NULL;
         }          }
         osigchld = signal(SIGCHLD, SIG_DFL);          osigchld = signal(SIGCHLD, SIG_DFL);
         if ((pid = fork()) < 0) {          if ((pid = fork()) == -1) {
                 error("ssh_askpass: fork: %s", strerror(errno));                  error("ssh_askpass: fork: %s", strerror(errno));
                 signal(SIGCHLD, osigchld);                  signal(SIGCHLD, osigchld);
                 return NULL;                  return NULL;
         }          }
         if (pid == 0) {          if (pid == 0) {
                 close(p[0]);                  close(p[0]);
                 if (dup2(p[1], STDOUT_FILENO) < 0)                  if (dup2(p[1], STDOUT_FILENO) == -1)
                         fatal("ssh_askpass: dup2: %s", strerror(errno));                          fatal("ssh_askpass: dup2: %s", strerror(errno));
                 execlp(askpass, askpass, msg, (char *)NULL);                  execlp(askpass, askpass, msg, (char *)NULL);
                 fatal("ssh_askpass: exec(%s): %s", askpass, strerror(errno));                  fatal("ssh_askpass: exec(%s): %s", askpass, strerror(errno));
Line 90 
Line 90 
         buf[len] = '\0';          buf[len] = '\0';
   
         close(p[0]);          close(p[0]);
         while ((ret = waitpid(pid, &status, 0)) < 0)          while ((ret = waitpid(pid, &status, 0)) == -1)
                 if (errno != EINTR)                  if (errno != EINTR)
                         break;                          break;
         signal(SIGCHLD, osigchld);          signal(SIGCHLD, osigchld);

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.54