parent
1a401bfa42
commit
c41588d64b
@ -0,0 +1,27 @@
|
||||
diff --git a/sftp.c b/sftp.c
|
||||
index 04881c83..03c7a5c7 100644
|
||||
--- a/sftp.c
|
||||
+++ b/sftp.c
|
||||
@@ -2527,12 +2527,17 @@ main(int argc, char **argv)
|
||||
port = tmp;
|
||||
break;
|
||||
default:
|
||||
+ /* Try with user, host and path. */
|
||||
if (parse_user_host_path(*argv, &user, &host,
|
||||
- &file1) == -1) {
|
||||
- /* Treat as a plain hostname. */
|
||||
- host = xstrdup(*argv);
|
||||
- host = cleanhostname(host);
|
||||
- }
|
||||
+ &file1) == 0)
|
||||
+ break;
|
||||
+ /* Try with user and host. */
|
||||
+ if (parse_user_host_port(*argv, &user, &host, NULL)
|
||||
+ == 0)
|
||||
+ break;
|
||||
+ /* Treat as a plain hostname. */
|
||||
+ host = xstrdup(*argv);
|
||||
+ host = cleanhostname(host);
|
||||
break;
|
||||
}
|
||||
file2 = *(argv + 1);
|
@ -0,0 +1,32 @@
|
||||
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
|
||||
index d29a03b4..d7283136 100644
|
||||
--- a/ssh-keyscan.c
|
||||
+++ b/ssh-keyscan.c
|
||||
@@ -490,6 +490,15 @@ congreet(int s)
|
||||
return;
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * Read the server banner as per RFC4253 section 4.2. The "SSH-"
|
||||
+ * protocol identification string may be preceeded by an arbitarily
|
||||
+ * large banner which we must read and ignore. Loop while reading
|
||||
+ * newline-terminated lines until we have one starting with "SSH-".
|
||||
+ * The ID string cannot be longer than 255 characters although the
|
||||
+ * preceeding banner lines may (in which case they'll be discarded
|
||||
+ * in multiple iterations of the outer loop).
|
||||
+ */
|
||||
for (;;) {
|
||||
memset(buf, '\0', sizeof(buf));
|
||||
bufsiz = sizeof(buf);
|
||||
@@ -517,6 +526,11 @@ congreet(int s)
|
||||
conrecycle(s);
|
||||
return;
|
||||
}
|
||||
+ if (cp >= buf + sizeof(buf)) {
|
||||
+ error("%s: greeting exceeds allowable length", c->c_name);
|
||||
+ confree(s);
|
||||
+ return;
|
||||
+ }
|
||||
if (*cp != '\n' && *cp != '\r') {
|
||||
error("%s: bad greeting", c->c_name);
|
||||
confree(s);
|
Loading…
Reference in New Issue