#define LIBEXEC "/libexec"
#define SSHDIR "/etc/ssh"
-char *SSH_PRNG_COMMAND_FILE;
-char *_PATH_SSH_SYSTEM_HOSTFILE;
-char *_PATH_SSH_SYSTEM_HOSTFILE2;
-char *_PATH_SERVER_CONFIG_FILE;
-char *_PATH_HOST_CONFIG_FILE;
-char *_PATH_HOST_KEY_FILE;
-char *_PATH_HOST_DSA_KEY_FILE;
-char *_PATH_HOST_RSA_KEY_FILE;
-char *_PATH_DH_MODULI;
-char *_PATH_DH_PRIMES;
-char *_PATH_SSH_PROGRAM;
-char *_PATH_SSH_SYSTEM_RC;
-char *_PATH_SSH_HOSTS_EQUIV;
-char *_PATH_SFTP_SERVER;
-char *SSH_RAND_HELPER;
+#define STRINIT "init_pathnames() not called!"
+
+char *SSH_PRNG_COMMAND_FILE = STRINIT;
+char *_PATH_SSH_SYSTEM_HOSTFILE = STRINIT;
+char *_PATH_SSH_SYSTEM_HOSTFILE2 = STRINIT;
+char *_PATH_SERVER_CONFIG_FILE = STRINIT;
+char *_PATH_HOST_CONFIG_FILE = STRINIT;
+char *_PATH_HOST_KEY_FILE = STRINIT;
+char *_PATH_HOST_DSA_KEY_FILE = STRINIT;
+char *_PATH_HOST_RSA_KEY_FILE = STRINIT;
+char *_PATH_DH_MODULI = STRINIT;
+char *_PATH_DH_PRIMES = STRINIT;
+char *_PATH_SSH_PROGRAM = STRINIT;
+char *_PATH_SSH_SYSTEM_RC = STRINIT;
+char *_PATH_SSH_HOSTS_EQUIV = STRINIT;
+char *_PATH_SFTP_SERVER = STRINIT;
+char *SSH_RAND_HELPER = STRINIT;
+char *_PATH_STDPATH_WITH_SCP = STRINIT;
static char *
-compose(const char str1[], const char str2[], const char str3[])
+compose3(const char str1[], const char str2[], const char str3[])
{
int len;
char *result;
return result;
}
+static char *
+compose4(const char str1[], const char str2[], const char str3[],
+ const char str4[])
+{
+ int len;
+ char *result;
+
+ len = strlen(str1) + strlen(str2) + strlen(str3) + strlen(str4) + 1;
+ result = xmalloc(len);
+ snprintf(result, len, "%s%s%s%s", str1, str2, str3, str4);
+
+ return result;
+}
+
void
init_pathnames()
{
fatal("GLOBUS_LOCATION environment variable undefined.");
}
- SSH_PRNG_COMMAND_FILE = compose(gl, SSHDIR, "/ssh_prng_cmds");
- _PATH_SSH_SYSTEM_HOSTFILE = compose(gl, SSHDIR, "/ssh_known_hosts");
- _PATH_SSH_SYSTEM_HOSTFILE2 = compose(gl, SSHDIR, "/ssh_known_hosts2");
- _PATH_SERVER_CONFIG_FILE = compose(gl, SSHDIR, "/sshd_config");
- _PATH_HOST_CONFIG_FILE = compose(gl, SSHDIR, "/ssh_config");
- _PATH_HOST_KEY_FILE = compose(gl, SSHDIR, "/ssh_host_key");
- _PATH_HOST_DSA_KEY_FILE = compose(gl, SSHDIR, "/ssh_host_dsa_key");
- _PATH_HOST_RSA_KEY_FILE = compose(gl, SSHDIR, "/ssh_host_rsa_key");
- _PATH_DH_MODULI = compose(gl, SSHDIR, "/moduli");
- _PATH_DH_PRIMES = compose(gl, SSHDIR, "/primes");
- _PATH_SSH_PROGRAM = compose(gl, BINDIR, "/ssh");
- _PATH_SSH_SYSTEM_RC = compose(gl, SSHDIR, "/sshrc");
- _PATH_SSH_HOSTS_EQUIV = compose(gl, SSHDIR, "/shosts.equiv");
- _PATH_SFTP_SERVER = compose(gl, LIBEXEC, "/sftp-server");
- SSH_RAND_HELPER = compose(gl, LIBEXEC, "/ssh-rand-helper");
+ /* lots of one time memory leaks here */
+ SSH_PRNG_COMMAND_FILE = compose3(gl, SSHDIR, "/ssh_prng_cmds");
+ _PATH_SSH_SYSTEM_HOSTFILE = compose3(gl, SSHDIR, "/ssh_known_hosts");
+ _PATH_SSH_SYSTEM_HOSTFILE2 = compose3(gl, SSHDIR, "/ssh_known_hosts2");
+ _PATH_SERVER_CONFIG_FILE = compose3(gl, SSHDIR, "/sshd_config");
+ _PATH_HOST_CONFIG_FILE = compose3(gl, SSHDIR, "/ssh_config");
+ _PATH_HOST_KEY_FILE = compose3(gl, SSHDIR, "/ssh_host_key");
+ _PATH_HOST_DSA_KEY_FILE = compose3(gl, SSHDIR, "/ssh_host_dsa_key");
+ _PATH_HOST_RSA_KEY_FILE = compose3(gl, SSHDIR, "/ssh_host_rsa_key");
+ _PATH_DH_MODULI = compose3(gl, SSHDIR, "/moduli");
+ _PATH_DH_PRIMES = compose3(gl, SSHDIR, "/primes");
+ _PATH_SSH_PROGRAM = compose3(gl, BINDIR, "/ssh");
+ _PATH_SSH_SYSTEM_RC = compose3(gl, SSHDIR, "/sshrc");
+ _PATH_SSH_HOSTS_EQUIV = compose3(gl, SSHDIR, "/shosts.equiv");
+ _PATH_SFTP_SERVER = compose3(gl, LIBEXEC, "/sftp-server");
+ SSH_RAND_HELPER = compose3(gl, LIBEXEC, "/ssh-rand-helper");
+ _PATH_STDPATH_WITH_SCP = compose4(_PATH_STDPATH, ":", gl, BINDIR);
}