
bugzilla-daemon at mindrot
Jun 16, 2003, 1:54 PM
Post #1 of 3
(94 views)
Permalink
|
|
[Bug 596] "ProxyCommand none" doesn't work
|
|
http://bugzilla.mindrot.org/show_bug.cgi?id=596 Summary: "ProxyCommand none" doesn't work Product: Portable OpenSSH Version: -current Platform: All OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: ssh AssignedTo: openssh-bugs [at] mindrot ReportedBy: jimb [at] redhat Using According to the man page, putting "ProxyCommand none" in my .ssh/config file should make SSH not use a proxy command to connect to that host. However, when I do this, SSH tries to execute "none" as a proxy command: $ cat ~/.ssh/config ProxyCommand none $ ssh -V OpenSSH_3.6.1p2, SSH protocols 1.5/2.0, OpenSSL 0x0090602f $ ssh -v www.red-bean.com OpenSSH_3.6.1p2, SSH protocols 1.5/2.0, OpenSSL 0x0090602f debug1: Reading configuration data /home/jimb/.ssh/config debug1: Reading configuration data /usr/local/etc/ssh_config debug1: Rhosts Authentication disabled, originating port will not be trusted. debug1: Executing proxy command: exec none debug1: identity file /home/jimb/.ssh/identity type 0 debug1: identity file /home/jimb/.ssh/id_rsa type -1 /bin/sh: line 1: exec: none: not found debug1: identity file /home/jimb/.ssh/id_dsa type 2 ssh_exchange_identification: Connection closed by remote host debug1: Calling cleanup 0x805f31c(0x0) $ The problem seems to be in process_config_line: on entry, 'line' contains a terminating newline: $ gdb ./ssh GNU gdb 2003-04-17-cvs Copyright 2003 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu"... (gdb) break process_config_line Breakpoint 1 at 0x804d42c: file readconf.c, line 284. (gdb) run www.red-bean.com Starting program: /rigel/jimb/TARS/openssh/openssh-3.6.1p2/ssh www.red-bean.com Breakpoint 1, process_config_line (options=0x807fba0, host=0xbfffc2ee "www.red-bean.com", line=0xbfffb7bc "\001", filename=0xbfffbc70 "/home/jimb/.ssh/config", linenum=1, activep=0xbfffb7bc) at readconf.c:284 284 s = line; (gdb) next 286 keyword = strdelim(&s); (gdb) print line $1 = 0xbfffb7c0 "ProxyCommand none\n" (gdb) The newline at the end gets copied through into the options structure: (gdb) dis 1 (gdb) break ssh.c:604 Breakpoint 2 at 0x804bece: file ssh.c, line 604. (gdb) c Continuing. Breakpoint 2, main (ac=0, av=0xbfffbdfc) at ssh.c:604 604 if (options.proxy_command != NULL && (gdb) print options.proxy_command $2 = 0x8085da0 "none\n" (gdb) This means that the following code doesn't do what it's supposed to do: if (options.proxy_command != NULL && strcmp(options.proxy_command, "none") == 0) options.proxy_command = NULL; I suspect that none of the configuration options that retain the entire rest of the line want that trailing newline. I'll attach a patch to process_config_line that removes a trailing newline, if present, from the value before doing any more per-option parsing. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.
|