summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorMarkus Friedl <markus@cvs.openbsd.org>2015-01-19 20:20:21 +0000
committerMarkus Friedl <markus@cvs.openbsd.org>2015-01-19 20:20:21 +0000
commit4388e51fffce1b1e02d22e99e167e4f296aeb2bf (patch)
tree825ea1836f3cf0732e7549700cb346c7234d2b0d /usr.bin
parent48708bb00d545b5016a400172fb57b2539de1292 (diff)
store compat flags in struct ssh; ok djm@
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/ssh/compat.c15
-rw-r--r--usr.bin/ssh/compat.h4
-rw-r--r--usr.bin/ssh/sshconnect.c4
-rw-r--r--usr.bin/ssh/sshd.c4
4 files changed, 15 insertions, 12 deletions
diff --git a/usr.bin/ssh/compat.c b/usr.bin/ssh/compat.c
index f592ae3d39f..5eb9e95d1ae 100644
--- a/usr.bin/ssh/compat.c
+++ b/usr.bin/ssh/compat.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: compat.c,v 1.86 2014/10/08 22:15:27 djm Exp $ */
+/* $OpenBSD: compat.c,v 1.87 2015/01/19 20:20:20 markus Exp $ */
/*
* Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved.
*
@@ -55,7 +55,7 @@ enable_compat13(void)
compat13 = 1;
}
/* datafellows bug compatibility */
-void
+u_int
compat_datafellows(const char *version)
{
int i;
@@ -172,13 +172,14 @@ compat_datafellows(const char *version)
for (i = 0; check[i].pat; i++) {
if (match_pattern_list(version, check[i].pat,
strlen(check[i].pat), 0) == 1) {
- datafellows = check[i].bugs;
debug("match: %s pat %s compat 0x%08x",
- version, check[i].pat, datafellows);
- return;
+ version, check[i].pat, check[i].bugs);
+ datafellows = check[i].bugs; /* XXX for now */
+ return check[i].bugs;
}
}
debug("no match: %s", version);
+ return 0;
}
#define SEP ","
@@ -190,7 +191,9 @@ proto_spec(const char *spec)
if (spec == NULL)
return ret;
- q = s = xstrdup(spec);
+ q = s = strdup(spec);
+ if (s == NULL)
+ return ret;
for ((p = strsep(&q, SEP)); p && *p != '\0'; (p = strsep(&q, SEP))) {
switch (atoi(p)) {
case 1:
diff --git a/usr.bin/ssh/compat.h b/usr.bin/ssh/compat.h
index 2e25d5ba991..af2f0073fb0 100644
--- a/usr.bin/ssh/compat.h
+++ b/usr.bin/ssh/compat.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: compat.h,v 1.45 2014/04/18 23:52:25 djm Exp $ */
+/* $OpenBSD: compat.h,v 1.46 2015/01/19 20:20:20 markus Exp $ */
/*
* Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved.
@@ -63,7 +63,7 @@
void enable_compat13(void);
void enable_compat20(void);
-void compat_datafellows(const char *);
+u_int compat_datafellows(const char *);
int proto_spec(const char *);
char *compat_cipher_proposal(char *);
char *compat_pkalg_proposal(char *);
diff --git a/usr.bin/ssh/sshconnect.c b/usr.bin/ssh/sshconnect.c
index 7aa789fdfc3..725c01301c9 100644
--- a/usr.bin/ssh/sshconnect.c
+++ b/usr.bin/ssh/sshconnect.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshconnect.c,v 1.254 2014/12/21 22:27:56 djm Exp $ */
+/* $OpenBSD: sshconnect.c,v 1.255 2015/01/19 20:20:20 markus Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -618,7 +618,7 @@ ssh_exchange_identification(int timeout_ms)
debug("Remote protocol version %d.%d, remote software version %.100s",
remote_major, remote_minor, remote_version);
- compat_datafellows(remote_version);
+ active_state->compat = compat_datafellows(remote_version);
mismatch = 0;
switch (remote_major) {
diff --git a/usr.bin/ssh/sshd.c b/usr.bin/ssh/sshd.c
index 54766fe9f1e..910dd9cb49c 100644
--- a/usr.bin/ssh/sshd.c
+++ b/usr.bin/ssh/sshd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshd.c,v 1.435 2015/01/19 20:16:15 markus Exp $ */
+/* $OpenBSD: sshd.c,v 1.436 2015/01/19 20:20:20 markus Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -462,7 +462,7 @@ sshd_exchange_identification(int sock_in, int sock_out)
debug("Client protocol version %d.%d; client software version %.100s",
remote_major, remote_minor, remote_version);
- compat_datafellows(remote_version);
+ active_state->compat = compat_datafellows(remote_version);
if ((datafellows & SSH_BUG_PROBE) != 0) {
logit("probed from %s with %s. Don't panic.",