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

Diff for /src/usr.bin/ssh/sshconnect2.c between version 1.303 and 1.304

version 1.303, 2019/02/12 23:53:10 version 1.304, 2019/05/15 04:43:31
Line 1825 
Line 1825 
         struct sshbuf *b;          struct sshbuf *b;
         struct stat st;          struct stat st;
         pid_t pid;          pid_t pid;
         int i, r, to[2], from[2], status;          int r, to[2], from[2], status;
         int sock = ssh_packet_get_connection_in(ssh);          int sock = ssh_packet_get_connection_in(ssh);
         u_char rversion = 0, version = 2;          u_char rversion = 0, version = 2;
         void (*osigchld)(int);          void (*osigchld)(int);
Line 1855 
Line 1855 
         }          }
         osigchld = signal(SIGCHLD, SIG_DFL);          osigchld = signal(SIGCHLD, SIG_DFL);
         if (pid == 0) {          if (pid == 0) {
                 /* keep the socket on exec */  
                 fcntl(sock, F_SETFD, 0);  
                 close(from[0]);                  close(from[0]);
                 if (dup2(from[1], STDOUT_FILENO) < 0)                  if (dup2(from[1], STDOUT_FILENO) < 0)
                         fatal("%s: dup2: %s", __func__, strerror(errno));                          fatal("%s: dup2: %s", __func__, strerror(errno));
Line 1865 
Line 1863 
                         fatal("%s: dup2: %s", __func__, strerror(errno));                          fatal("%s: dup2: %s", __func__, strerror(errno));
                 close(from[1]);                  close(from[1]);
                 close(to[0]);                  close(to[0]);
                 /* Close everything but stdio and the socket */  
                 for (i = STDERR_FILENO + 1; i < sock; i++)                  if (dup2(sock, STDERR_FILENO + 1) < 0)
                         close(i);                          fatal("%s: dup2: %s", __func__, strerror(errno));
                   sock = STDERR_FILENO + 1;
                   fcntl(sock, F_SETFD, 0);        /* keep the socket on exec */
                 closefrom(sock + 1);                  closefrom(sock + 1);
   
                 debug3("%s: [child] pid=%ld, exec %s",                  debug3("%s: [child] pid=%ld, exec %s",
                     __func__, (long)getpid(), _PATH_SSH_KEY_SIGN);                      __func__, (long)getpid(), _PATH_SSH_KEY_SIGN);
                 execl(_PATH_SSH_KEY_SIGN, _PATH_SSH_KEY_SIGN, (char *)NULL);                  execl(_PATH_SSH_KEY_SIGN, _PATH_SSH_KEY_SIGN, (char *)NULL);
Line 1877 
Line 1878 
         }          }
         close(from[1]);          close(from[1]);
         close(to[0]);          close(to[0]);
           sock = STDIN_FILENO + 1;
   
         if ((b = sshbuf_new()) == NULL)          if ((b = sshbuf_new()) == NULL)
                 fatal("%s: sshbuf_new failed", __func__);                  fatal("%s: sshbuf_new failed", __func__);

Legend:
Removed from v.1.303  
changed lines
  Added in v.1.304