- djm@cvs.openbsd.org 2008/08/21 04:09:57

[session.c]
     allow ForceCommand internal-sftp with arguments. based on patch from
     michael.barabanov AT gmail.com; ok markus@
This commit is contained in:
Damien Miller 2008-11-03 19:17:57 +11:00
parent fa51b1626c
commit ad793d59a9
2 changed files with 14 additions and 4 deletions

View File

@ -18,6 +18,10 @@
- krw@cvs.openbsd.org 2008/08/02 04:29:51
[ssh_config.5]
whitepsace -> whitespace. From Matthew Clarke via bugs@.
- djm@cvs.openbsd.org 2008/08/21 04:09:57
[session.c]
allow ForceCommand internal-sftp with arguments. based on patch from
michael.barabanov AT gmail.com; ok markus@
20080906
- (dtucker) [config.guess config.sub] Update to latest versions from
@ -4752,4 +4756,4 @@
OpenServer 6 and add osr5bigcrypt support so when someone migrates
passwords between UnixWare and OpenServer they will still work. OK dtucker@
$Id: ChangeLog,v 1.5103 2008/11/03 08:17:33 djm Exp $
$Id: ChangeLog,v 1.5104 2008/11/03 08:17:57 djm Exp $

View File

@ -1,4 +1,4 @@
/* $OpenBSD: session.c,v 1.241 2008/06/16 13:22:53 dtucker Exp $ */
/* $OpenBSD: session.c,v 1.242 2008/08/21 04:09:57 djm Exp $ */
/*
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
* All rights reserved
@ -95,6 +95,12 @@
#include <kafs.h>
#endif
#define IS_INTERNAL_SFTP(c) \
(!strncmp(c, INTERNAL_SFTP_NAME, sizeof(INTERNAL_SFTP_NAME) - 1) && \
(c[sizeof(INTERNAL_SFTP_NAME) - 1] == '\0' || \
c[sizeof(INTERNAL_SFTP_NAME) - 1] == ' ' || \
c[sizeof(INTERNAL_SFTP_NAME) - 1] == '\t'))
/* func */
Session *session_new(void);
@ -781,7 +787,7 @@ do_exec(Session *s, const char *command)
if (options.adm_forced_command) {
original_command = command;
command = options.adm_forced_command;
if (strcmp(INTERNAL_SFTP_NAME, command) == 0)
if (IS_INTERNAL_SFTP(command))
s->is_subsystem = SUBSYSTEM_INT_SFTP;
else if (s->is_subsystem)
s->is_subsystem = SUBSYSTEM_EXT;
@ -789,7 +795,7 @@ do_exec(Session *s, const char *command)
} else if (forced_command) {
original_command = command;
command = forced_command;
if (strcmp(INTERNAL_SFTP_NAME, command) == 0)
if (IS_INTERNAL_SFTP(command))
s->is_subsystem = SUBSYSTEM_INT_SFTP;
else if (s->is_subsystem)
s->is_subsystem = SUBSYSTEM_EXT;