From 166fca8894807de71b741a779330bd23edfec013 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Thu, 20 Apr 2000 07:42:21 +1000 Subject: - 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. --- serverloop.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'serverloop.c') diff --git a/serverloop.c b/serverloop.c index a7abbe404..1a76b8da8 100644 --- a/serverloop.c +++ b/serverloop.c @@ -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; -- cgit v1.2.3