]> andersk Git - openssh.git/commitdiff
- Sync with OpenBSD CVS:
authordamien <damien>
Wed, 19 Apr 2000 21:42:21 +0000 (21:42 +0000)
committerdamien <damien>
Wed, 19 Apr 2000 21:42:21 +0000 (21:42 +0000)
  [clientloop.c login.c serverloop.c ssh-agent.c ssh.h sshconnect.c sshd.c]
  - pid_t
  [session.c]
  - remove bogus chan_read_failed. this could cause data
    corruption (missing data) at end of a SSH2 session.

ChangeLog
clientloop.c
login.c
serverloop.c
session.c
ssh-agent.c
ssh.h
sshconnect.c
sshd.c

index a32d02954ffd9904226649ed243bfb4193a3a88f..168e583b4a07934501a0e982d0ea7c1ca1a82646 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
 20000420
  - Make fixpaths work with perl4, patch from Andre Lucas 
    <andre.lucas@dial.pipex.com>
+ - Sync with OpenBSD CVS:
+  [clientloop.c login.c serverloop.c ssh-agent.c ssh.h sshconnect.c sshd.c]
+  - pid_t
+  [session.c]
+  - remove bogus chan_read_failed. this could cause data
+    corruption (missing data) at end of a SSH2 session.
 
 20000419
  - OpenBSD CVS updates
index 2ab96fa5b8fcf1f46e662bcf1c0e49c3b5b900ba..148e8b5fbc240aa9dcae9c55ef3f00b208a791f6 100644 (file)
@@ -471,7 +471,8 @@ client_process_net_input(fd_set * readset)
 void
 client_process_input(fd_set * readset)
 {
-       int len, pid;
+       int len;
+       pid_t pid;
        char buf[8192], *s;
 
        /* Read input from stdin. */
diff --git a/login.c b/login.c
index 860257fe0bb2a0f75abd0424d4b094d162b2d885..b25d93dad0f227323d7c49195e1c59951ce1b565 100644 (file)
--- a/login.c
+++ b/login.c
@@ -136,7 +136,7 @@ get_last_login_time(uid_t uid, const char *logname,
  */
 
 void
-record_login(int pid, const char *ttyname, const char *user, uid_t uid,
+record_login(pid_t pid, const char *ttyname, const char *user, uid_t uid,
             const char *host, struct sockaddr * addr)
 {
 #if defined(_PATH_LASTLOG) && !defined(DISABLE_LASTLOG)
@@ -274,7 +274,7 @@ record_login(int pid, const char *ttyname, const char *user, uid_t uid,
 /* Records that the user has logged out. */
 
 void
-record_logout(int pid, const char *ttyname)
+record_logout(pid_t pid, const char *ttyname)
 {
 #ifdef HAVE_LIBUTIL_LOGIN
        const char *line = ttyname + 5; /* /dev/ttyq8 -> ttyq8 */
index a7abbe4048357fa210da5f2862843b21c0c47ede..1a76b8da808b5af935c471bbf87a776f0b4f344e 100644 (file)
@@ -52,7 +52,7 @@ static int max_fd;            /* Max file descriptor number for select(). */
  * that the child's output gets a chance to drain before it is yanked.
  */
 
-static int child_pid;                  /* Pid of the child. */
+static pid_t child_pid;                        /* Pid of the child. */
 static volatile int child_terminated;  /* The child has terminated. */
 static volatile int child_has_selected; /* Child has had chance to drain. */
 static volatile int child_wait_status; /* Status from wait(). */
@@ -63,7 +63,8 @@ void
 sigchld_handler(int sig)
 {
        int save_errno = errno;
-       int wait_pid;
+       pid_t wait_pid;
+
        debug("Received SIGCHLD.");
        wait_pid = wait((int *) &child_wait_status);
        if (wait_pid != -1) {
@@ -373,9 +374,10 @@ process_buffered_input_packets()
  * child program).
  */
 void
-server_loop(int pid, int fdin_arg, int fdout_arg, int fderr_arg)
+server_loop(pid_t pid, int fdin_arg, int fdout_arg, int fderr_arg)
 {
-       int wait_status, wait_pid;      /* Status and pid returned by wait(). */
+       int wait_status;        /* Status returned by wait(). */
+       pid_t wait_pid;         /* pid returned by wait(). */
        int waiting_termination = 0;    /* Have displayed waiting close message. */
        unsigned int max_time_milliseconds;
        unsigned int previous_stdout_buffer_bytes;
index 24bc25c6f1a40d564d46d81280bc268a6e8a6002..840a4e9e8c73a294f6674654bf0409a398f62f5f 100644 (file)
--- a/session.c
+++ b/session.c
@@ -8,7 +8,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: session.c,v 1.4 2000/04/14 10:30:33 markus Exp $");
+RCSID("$OpenBSD: session.c,v 1.5 2000/04/19 09:24:39 markus Exp $");
 
 #include "xmalloc.h"
 #include "ssh.h"
@@ -1388,8 +1388,12 @@ session_exit_message(Session *s, int status)
        /* disconnect channel */
        debug("session_exit_message: release channel %d", s->chanid);
        channel_cancel_cleanup(s->chanid);
-       if (c->istate == CHAN_INPUT_OPEN)
-               chan_read_failed(c);
+       /*
+        * emulate a write failure with 'chan_write_failed', nobody will be
+        * interested in data we write.
+        * Note that we must not call 'chan_read_failed', since there could
+        * be some more data waiting in the pipe.
+        */
        chan_write_failed(c);
        s->chanid = -1;
 }
index fac2a2c38d3684267902ca76dde3736bc7d5c1ea..5a265e6b82062a3e634ef6e42c8a95fc0a5ef8cb 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ssh-agent.c,v 1.28 2000/04/14 10:30:33 markus Exp $   */
+/*     $OpenBSD: ssh-agent.c,v 1.29 2000/04/19 07:05:49 deraadt Exp $  */
 
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -9,7 +9,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: ssh-agent.c,v 1.28 2000/04/14 10:30:33 markus Exp $");
+RCSID("$OpenBSD: ssh-agent.c,v 1.29 2000/04/19 07:05:49 deraadt Exp $");
 
 #include "ssh.h"
 #include "rsa.h"
@@ -46,7 +46,7 @@ Identity *identities = NULL;
 int max_fd = 0;
 
 /* pid of shell == parent of agent */
-int parent_pid = -1;
+pid_t parent_pid = -1;
 
 /* pathname and directory for AUTH_SOCKET */
 char socket_name[1024];
@@ -464,7 +464,7 @@ after_select(fd_set *readset, fd_set *writeset)
 void
 check_parent_exists(int sig)
 {
-       if (kill(parent_pid, 0) < 0) {
+       if (parent_pid != -1 && kill(parent_pid, 0) < 0) {
                /* printf("Parent has died - Authentication agent exiting.\n"); */
                exit(1);
        }
@@ -550,6 +550,7 @@ main(int ac, char **av)
                }
                pid = atoi(pidstr);
                if (pid < 1) {  /* XXX PID_MAX check too */
+               /* Yes, PID_MAX check please */
                        fprintf(stderr, "%s=\"%s\", which is not a good PID\n",
                                SSH_AGENTPID_ENV_NAME, pidstr);
                        exit(1);
diff --git a/ssh.h b/ssh.h
index 9d57e40d41bef9d1fdc25606ea15634c4e0a32ab..f79c119f06900a0c77c0199029dc3cb4357aa4c5 100644 (file)
--- a/ssh.h
+++ b/ssh.h
@@ -288,14 +288,14 @@ get_last_login_time(uid_t uid, const char *logname,
  * by login(1).
  */
 void
-record_login(int pid, const char *ttyname, const char *user, uid_t uid,
+record_login(pid_t pid, const char *ttyname, const char *user, uid_t uid,
     const char *host, struct sockaddr *addr);
 
 /*
  * Records that the user has logged out.  This does many thigs normally done
  * by login(1) or init.
  */
-void    record_logout(int pid, const char *ttyname);
+void    record_logout(pid_t pid, const char *ttyname);
 
 /*------------ definitions for sshconnect.c ----------*/
 
@@ -504,7 +504,7 @@ char   *tilde_expand_filename(const char *filename, uid_t my_uid);
  * (of the child program), and reads from stdout and stderr (of the child
  * program).
  */
-void    server_loop(int pid, int fdin, int fdout, int fderr);
+void    server_loop(pid_t pid, int fdin, int fdout, int fderr);
 void    server_loop2(void);
 
 /* Client side main loop for the interactive session. */
index 3c5c990f2069be7125b244c777054b03c56197bc..f58289e7bd7a07d9e25e2a6b03c00668e64284ab 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshconnect.c,v 1.68 2000/04/14 10:30:33 markus Exp $");
+RCSID("$OpenBSD: sshconnect.c,v 1.69 2000/04/19 07:05:50 deraadt Exp $");
 
 #include <openssl/bn.h>
 #include "xmalloc.h"
@@ -62,7 +62,7 @@ ssh_proxy_connect(const char *host, u_short port, uid_t original_real_uid,
        const char *cp;
        char *command_string;
        int pin[2], pout[2];
-       int pid;
+       pid_t pid;
        char strport[NI_MAXSERV];
 
        /* Convert the port number into a string. */
diff --git a/sshd.c b/sshd.c
index 3b75b884e7465527f342e7ea9aaca24d5a7defe5..c1dcdd8e9fe0e3a6bd29dea94d9845927c5507a7 100644 (file)
--- a/sshd.c
+++ b/sshd.c
@@ -14,7 +14,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshd.c,v 1.106 2000/04/17 12:31:47 markus Exp $");
+RCSID("$OpenBSD: sshd.c,v 1.107 2000/04/19 07:05:50 deraadt Exp $");
 
 #include "xmalloc.h"
 #include "rsa.h"
@@ -396,7 +396,8 @@ main(int ac, char **av)
 {
        extern char *optarg;
        extern int optind;
-       int opt, sock_in = 0, sock_out = 0, newsock, i, fdsetsz, pid, on = 1;
+       int opt, sock_in = 0, sock_out = 0, newsock, i, fdsetsz, on = 1;
+       pid_t pid;
        socklen_t fromlen;
        int silentrsa = 0;
        fd_set *fdset;
This page took 0.068793 seconds and 5 git commands to generate.