summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2005-03-02 01:27:42 +0000
committerDamien Miller <djm@cvs.openbsd.org>2005-03-02 01:27:42 +0000
commit2031d0f780c6522d3f40be4e2e42c3ecce731dbf (patch)
tree9d59837506f70178eab7d9e963547fa8e74558af
parent0de5fd17bb72e774d446cda3f9230070d3c87342 (diff)
ignore hostnames with metachars when hashing; ok deraadt@
-rw-r--r--usr.bin/ssh/ssh-keygen.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/usr.bin/ssh/ssh-keygen.c b/usr.bin/ssh/ssh-keygen.c
index 31f527bd1f0..2a7af708cb3 100644
--- a/usr.bin/ssh/ssh-keygen.c
+++ b/usr.bin/ssh/ssh-keygen.c
@@ -12,7 +12,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: ssh-keygen.c,v 1.119 2005/03/01 10:42:49 djm Exp $");
+RCSID("$OpenBSD: ssh-keygen.c,v 1.120 2005/03/02 01:27:41 djm Exp $");
#include <openssl/evp.h>
#include <openssl/pem.h>
@@ -686,8 +686,15 @@ do_known_hosts(struct passwd *pw, const char *name)
} else if (hash_hosts) {
for(cp2 = strsep(&cp, ",");
cp2 != NULL && *cp2 != '\0';
- cp2 = strsep(&cp, ","))
- print_host(out, cp2, public, 1);
+ cp2 = strsep(&cp, ",")) {
+ if (strcspn(cp2, "*?!") != strlen(cp2))
+ fprintf(stderr, "Warning: "
+ "ignoring host name with "
+ "metacharacters: %.64s\n",
+ cp2);
+ else
+ print_host(out, cp2, public, 1);
+ }
has_unhashed = 1;
}
}