version 1.325, 2009/03/17 21:37:00 |
version 1.326, 2009/07/02 02:11:47 |
|
|
|
|
#include <sys/types.h> |
#include <sys/types.h> |
#include <sys/ioctl.h> |
#include <sys/ioctl.h> |
|
#include <sys/param.h> |
#include <sys/queue.h> |
#include <sys/queue.h> |
#include <sys/resource.h> |
#include <sys/resource.h> |
#include <sys/socket.h> |
#include <sys/socket.h> |
|
|
int |
int |
main(int ac, char **av) |
main(int ac, char **av) |
{ |
{ |
int i, opt, exit_status, use_syslog; |
int i, r, opt, exit_status, use_syslog; |
char *p, *cp, *line, *argv0, buf[256]; |
char *p, *cp, *line, *argv0, buf[MAXPATHLEN]; |
struct stat st; |
struct stat st; |
struct passwd *pw; |
struct passwd *pw; |
int dummy, timeout_ms; |
int dummy, timeout_ms; |
|
|
fatal("Can't open user config file %.100s: " |
fatal("Can't open user config file %.100s: " |
"%.100s", config, strerror(errno)); |
"%.100s", config, strerror(errno)); |
} else { |
} else { |
snprintf(buf, sizeof buf, "%.100s/%.100s", pw->pw_dir, |
r = snprintf(buf, sizeof buf, "%s/%s", pw->pw_dir, |
_PATH_SSH_USER_CONFFILE); |
_PATH_SSH_USER_CONFFILE); |
(void)read_config_file(buf, host, &options, 1); |
if (r > 0 && (size_t)r < sizeof(buf)) |
|
(void)read_config_file(buf, host, &options, 1); |
|
|
/* Read systemwide configuration file after use config. */ |
/* Read systemwide configuration file after use config. */ |
(void)read_config_file(_PATH_HOST_CONFIG_FILE, host, |
(void)read_config_file(_PATH_HOST_CONFIG_FILE, host, |
|
|
* Now that we are back to our own permissions, create ~/.ssh |
* Now that we are back to our own permissions, create ~/.ssh |
* directory if it doesn't already exist. |
* directory if it doesn't already exist. |
*/ |
*/ |
snprintf(buf, sizeof buf, "%.100s%s%.100s", pw->pw_dir, |
r = snprintf(buf, sizeof buf, "%s%s%s", pw->pw_dir, |
strcmp(pw->pw_dir, "/") ? "/" : "", _PATH_SSH_USER_DIR); |
strcmp(pw->pw_dir, "/") ? "/" : "", _PATH_SSH_USER_DIR); |
if (stat(buf, &st) < 0) |
if (r > 0 && (size_t)r < sizeof(buf) && stat(buf, &st) < 0) |
if (mkdir(buf, 0700) < 0) |
if (mkdir(buf, 0700) < 0) |
error("Could not create directory '%.200s'.", buf); |
error("Could not create directory '%.200s'.", buf); |
|
|