summaryrefslogtreecommitdiffhomepage
path: root/cli-kex.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2006-06-07 13:41:19 +0000
committerMatt Johnston <matt@ucc.asn.au>2006-06-07 13:41:19 +0000
commit32af5c267e44c5edb20e02b6de066021e4c58b30 (patch)
tree0f9c02a91f9820cb4a2fe41ac164231e082fd3f0 /cli-kex.c
parentba7513fdf365ee505b1ef72972740597d3fbf875 (diff)
Look at HOME before /etc/passwd when looking for ~/.ssh/known_hosts
file, so people can workaround broken /etc/passwds. Print the full path in error messages. --HG-- extra : convert_revision : d777688369ee21011625a3f1fe79ddbe3d5b5c93
Diffstat (limited to 'cli-kex.c')
-rw-r--r--cli-kex.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/cli-kex.c b/cli-kex.c
index ea4a2a5..3548f1c 100644
--- a/cli-kex.c
+++ b/cli-kex.c
@@ -152,15 +152,14 @@ static void checkhostkey(unsigned char* keyblob, unsigned int keybloblen) {
buffer * line = NULL;
int ret;
- pw = getpwuid(getuid());
+ homedir = getenv("HOME");
- if (pw)
- homedir = pw->pw_dir;
- }
- pw = NULL;
-
- if (!homedir)
- homedir = getenv("HOME");
+ if (!homedir) {
+ pw = getpwuid(getuid());
+ if (pw) {
+ homedir = pw->pw_dir;
+ }
+ pw = NULL;
}
if (homedir) {
@@ -172,8 +171,8 @@ static void checkhostkey(unsigned char* keyblob, unsigned int keybloblen) {
/* Check that ~/.ssh exists - easiest way is just to mkdir */
if (mkdir(filename, S_IRWXU) != 0) {
if (errno != EEXIST) {
- dropbear_log(LOG_INFO, "Warning: failed creating ~/.ssh: %s",
- strerror(errno));
+ dropbear_log(LOG_INFO, "Warning: failed creating %s/.ssh: %s",
+ homedir, strerror(errno));
TRACE(("mkdir didn't work: %s", strerror(errno)))
ask_to_confirm(keyblob, keybloblen);
goto out; /* only get here on success */
@@ -197,7 +196,8 @@ static void checkhostkey(unsigned char* keyblob, unsigned int keybloblen) {
if (hostsfile == NULL) {
TRACE(("hostsfile didn't open: %s", strerror(errno)))
- dropbear_log(LOG_WARNING, "Failed to open ~/.ssh/known_hosts");
+ dropbear_log(LOG_WARNING, "Failed to open %s/.ssh/known_hosts",
+ homedir);
ask_to_confirm(keyblob, keybloblen);
goto out; /* We only get here on success */
}