summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordtucker <dtucker@openbsd.org>2009-11-20 00:15:41 +0000
committerdtucker <dtucker@openbsd.org>2009-11-20 00:15:41 +0000
commit8c81bbed223dceb2c8056af077a72b259ebaf63a (patch)
tree29e404f2823b48fe5088a361d78718eec657e2ad
parentbz#1606: error when an attempt is made to connect to a server (diff)
downloadwireguard-openbsd-8c81bbed223dceb2c8056af077a72b259ebaf63a.tar.xz
wireguard-openbsd-8c81bbed223dceb2c8056af077a72b259ebaf63a.zip
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.
-rw-r--r--usr.bin/ssh/session.c14
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;
}