]> andersk Git - openssh.git/blobdiff - servconf.c
- stevesk@cvs.openbsd.org 2006/07/11 20:27:56
[openssh.git] / servconf.c
index 1443e832e1e67400b3de6a78f01b5d5effffacac..c5b933ab9c0e8739b040b3c688a2e1417f98f522 100644 (file)
@@ -1,3 +1,4 @@
+/* $OpenBSD: servconf.c,v 1.152 2006/07/08 21:47:12 stevesk Exp $ */
 /*
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
  *                    All rights reserved
@@ -11,6 +12,9 @@
 
 #include "includes.h"
 
+#include <sys/types.h>
+#include <sys/socket.h>
+
 #include "ssh.h"
 #include "log.h"
 #include "servconf.h"
@@ -445,6 +449,7 @@ process_server_config_line(ServerOptions *options, char *line,
        ServerOpCodes opcode;
        u_short port;
        u_int i;
+       size_t len;
 
        cp = line;
        if ((arg = strdelim(&cp)) == NULL)
@@ -900,6 +905,17 @@ parse_flag:
                        fatal("%s line %d: Missing subsystem command.",
                            filename, linenum);
                options->subsystem_command[options->num_subsystems] = xstrdup(arg);
+
+               /* Collect arguments (separate to executable) */
+               p = xstrdup(arg);
+               len = strlen(p) + 1;
+               while ((arg = strdelim(&cp)) != NULL && *arg != '\0') {
+                       len += 1 + strlen(arg);
+                       p = xrealloc(p, 1, len);
+                       strlcat(p, " ", len);
+                       strlcat(p, arg, len);
+               }
+               options->subsystem_args[options->num_subsystems] = p;
                options->num_subsystems++;
                break;
 
This page took 0.101188 seconds and 4 git commands to generate.