diff options
| author | itojun <itojun@NetBSD.org> | 2000-11-13 02:30:38 +0000 |
|---|---|---|
| committer | itojun <itojun@NetBSD.org> | 2000-11-13 02:30:38 +0000 |
| commit | 40ad5fc4c1cdee8aeababcfee13e4d85acab1032 (patch) | |
| tree | d99f5f02135690eb5fdcf0dbdd265cc4735889c8 /crypto/dist/ssh/clientloop.c | |
| parent | f898d4a4920c0f573d89f73df68e5f636c5907e5 (diff) | |
correct validation on X11 forwarding. from markus@openbsd
Diffstat (limited to 'crypto/dist/ssh/clientloop.c')
| -rw-r--r-- | crypto/dist/ssh/clientloop.c | 16 |
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) |
