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

Diff for /src/usr.bin/ssh/sftp-server.c between version 1.133 and 1.134

version 1.133, 2021/11/14 06:15:36 version 1.134, 2021/11/18 03:06:03
Line 1825 
Line 1825 
                 }                  }
   
                 /* copy stdin to iqueue */                  /* copy stdin to iqueue */
                 if (pfd[0].revents & POLLIN) {                  if (pfd[0].revents & (POLLIN|POLLHUP)) {
                         len = read(in, buf, sizeof buf);                          len = read(in, buf, sizeof buf);
                         if (len == 0) {                          if (len == 0) {
                                 debug("read eof");                                  debug("read eof");
                                 sftp_server_cleanup_exit(0);                                  sftp_server_cleanup_exit(0);
                         } else if (len == -1) {                          } else if (len == -1) {
                                 error("read: %s", strerror(errno));                                  if (errno != EAGAIN && errno != EINTR) {
                                 sftp_server_cleanup_exit(1);                                          error("read: %s", strerror(errno));
                                           sftp_server_cleanup_exit(1);
                                   }
                         } else if ((r = sshbuf_put(iqueue, buf, len)) != 0)                          } else if ((r = sshbuf_put(iqueue, buf, len)) != 0)
                                 fatal_fr(r, "sshbuf_put");                                  fatal_fr(r, "sshbuf_put");
                 }                  }
                 /* send oqueue to stdout */                  /* send oqueue to stdout */
                 if (pfd[1].revents & POLLOUT) {                  if (pfd[1].revents & (POLLOUT|POLLHUP)) {
                         len = write(out, sshbuf_ptr(oqueue), olen);                          len = write(out, sshbuf_ptr(oqueue), olen);
                         if (len == -1) {                          if (len == 0 || (len == -1 && errno == EPIPE)) {
                                 error("write: %s", strerror(errno));                                  debug("write eof");
                                   sftp_server_cleanup_exit(0);
                           } else if (len == -1) {
                                 sftp_server_cleanup_exit(1);                                  sftp_server_cleanup_exit(1);
                                   if (errno != EAGAIN && errno != EINTR) {
                                           error("write: %s", strerror(errno));
                                           sftp_server_cleanup_exit(1);
                                   }
                         } else if ((r = sshbuf_consume(oqueue, len)) != 0)                          } else if ((r = sshbuf_consume(oqueue, len)) != 0)
                                 fatal_fr(r, "consume");                                  fatal_fr(r, "consume");
                 }                  }

Legend:
Removed from v.1.133  
changed lines
  Added in v.1.134