summaryrefslogtreecommitdiff
path: root/crypto/dist/ssh/clientloop.c
diff options
context:
space:
mode:
authoritojun <itojun@NetBSD.org>2000-11-13 02:30:38 +0000
committeritojun <itojun@NetBSD.org>2000-11-13 02:30:38 +0000
commit40ad5fc4c1cdee8aeababcfee13e4d85acab1032 (patch)
treed99f5f02135690eb5fdcf0dbdd265cc4735889c8 /crypto/dist/ssh/clientloop.c
parentf898d4a4920c0f573d89f73df68e5f636c5907e5 (diff)
correct validation on X11 forwarding. from markus@openbsd
Diffstat (limited to 'crypto/dist/ssh/clientloop.c')
-rw-r--r--crypto/dist/ssh/clientloop.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/crypto/dist/ssh/clientloop.c b/crypto/dist/ssh/clientloop.c
index 34402569459..7b5a1b0aa6a 100644
--- a/crypto/dist/ssh/clientloop.c
+++ b/crypto/dist/ssh/clientloop.c
@@ -1,4 +1,4 @@
-/* $NetBSD: clientloop.c,v 1.1.1.1 2000/09/28 22:09:59 thorpej Exp $ */
+/* $NetBSD: clientloop.c,v 1.2 2000/11/13 02:30:38 itojun Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -64,7 +64,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: clientloop.c,v 1.1.1.1 2000/09/28 22:09:59 thorpej Exp $");
+__RCSID("$NetBSD: clientloop.c,v 1.2 2000/11/13 02:30:38 itojun Exp $");
#endif
#include "includes.h"
@@ -85,6 +85,8 @@ __RCSID("$NetBSD: clientloop.c,v 1.1.1.1 2000/09/28 22:09:59 thorpej Exp $");
#include "buffer.h"
#include "bufaux.h"
+extern Options options;
+
/* Flag indicating that stdin should be redirected from /dev/null. */
extern int stdin_null_flag;
@@ -802,7 +804,6 @@ simple_escape_filter(Channel *c, char *buf, int len)
int
client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id)
{
- extern Options options;
double start_time, total_time;
int len;
char buf[100];
@@ -1045,7 +1046,7 @@ client_input_channel_open(int type, int plen, void *ctxt)
debug("client_input_channel_open: ctype %s rchan %d win %d max %d",
ctype, rchan, rwindow, rmaxpack);
- if (strcmp(ctype, "x11") == 0) {
+ if (strcmp(ctype, "x11") == 0 && options.forward_x11) {
int sock;
char *originator;
int originator_port;
@@ -1117,11 +1118,14 @@ client_init_dispatch_13(void)
dispatch_set(SSH_MSG_CHANNEL_OPEN_CONFIRMATION, &channel_input_open_confirmation);
dispatch_set(SSH_MSG_CHANNEL_OPEN_FAILURE, &channel_input_open_failure);
dispatch_set(SSH_MSG_PORT_OPEN, &channel_input_port_open);
- dispatch_set(SSH_SMSG_AGENT_OPEN, &auth_input_open_request);
dispatch_set(SSH_SMSG_EXITSTATUS, &client_input_exit_status);
dispatch_set(SSH_SMSG_STDERR_DATA, &client_input_stderr_data);
dispatch_set(SSH_SMSG_STDOUT_DATA, &client_input_stdout_data);
- dispatch_set(SSH_SMSG_X11_OPEN, &x11_input_open);
+
+ dispatch_set(SSH_SMSG_AGENT_OPEN, options.forward_agent ?
+ &auth_input_open_request : NULL);
+ dispatch_set(SSH_SMSG_X11_OPEN, options.forward_x11 ?
+ &x11_input_open : NULL);
}
static void
client_init_dispatch_15(void)