diff options
author | Darren Tucker <dtucker@cvs.openbsd.org> | 2009-11-20 00:15:42 +0000 |
---|---|---|
committer | Darren Tucker <dtucker@cvs.openbsd.org> | 2009-11-20 00:15:42 +0000 |
commit | f67c51cee6ba790c7bae934d37ffb1de1a2c0ce9 (patch) | |
tree | a2b99d468a6ab4fd63394330c936f478993e2625 /usr.bin/ssh/session.c | |
parent | bb42b7e937487b4963164cd22daec59530b2a2de (diff) |
Warn but do not fail if stat()ing the subsystem binary fails. This helps
with chrootdirectory+forcecommand=sftp-server and restricted shells.
bz #1599, ok djm.
Diffstat (limited to 'usr.bin/ssh/session.c')
-rw-r--r-- | usr.bin/ssh/session.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/usr.bin/ssh/session.c b/usr.bin/ssh/session.c index 6dc55c64e40..1bfa7ed567e 100644 --- a/usr.bin/ssh/session.c +++ b/usr.bin/ssh/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.248 2009/11/19 23:39:50 djm Exp $ */ +/* $OpenBSD: session.c,v 1.249 2009/11/20 00:15:41 dtucker Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * All rights reserved @@ -1722,16 +1722,16 @@ session_subsystem_req(Session *s) if (strcmp(subsys, options.subsystem_name[i]) == 0) { prog = options.subsystem_command[i]; cmd = options.subsystem_args[i]; - if (!strcmp(INTERNAL_SFTP_NAME, prog)) { + if (strcmp(INTERNAL_SFTP_NAME, prog) == 0) { s->is_subsystem = SUBSYSTEM_INT_SFTP; - } else if (stat(prog, &st) < 0) { - error("subsystem: cannot stat %s: %s", prog, - strerror(errno)); - break; + debug("subsystem: %s", prog); } else { + if (stat(prog, &st) < 0) + debug("subsystem: cannot stat %s: %s", + prog, strerror(errno)); s->is_subsystem = SUBSYSTEM_EXT; + debug("subsystem: exec() %s", cmd); } - debug("subsystem: exec() %s", cmd); success = do_exec(s, cmd) == 0; break; } |