summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbsd-compat/openssl-compat.c6
-rw-r--r--openbsd-compat/regress/opensslvertest.c1
2 files changed, 4 insertions, 3 deletions
diff --git a/openbsd-compat/openssl-compat.c b/openbsd-compat/openssl-compat.c
index 63a660c7a..3f62403ce 100644
--- a/openbsd-compat/openssl-compat.c
+++ b/openbsd-compat/openssl-compat.c
@@ -36,7 +36,7 @@
36/* 36/*
37 * OpenSSL version numbers: MNNFFPPS: major minor fix patch status 37 * OpenSSL version numbers: MNNFFPPS: major minor fix patch status
38 * We match major, minor, fix and status (not patch) for <1.0.0. 38 * We match major, minor, fix and status (not patch) for <1.0.0.
39 * After that, we acceptable compatible fix versions (so we 39 * After that, we accept compatible fix and status versions (so we
40 * allow 1.0.1 to work with 1.0.0). Going backwards is only allowed 40 * allow 1.0.1 to work with 1.0.0). Going backwards is only allowed
41 * within a patch series. 41 * within a patch series.
42 */ 42 */
@@ -57,10 +57,10 @@ ssh_compatible_openssl(long headerver, long libver)
57 } 57 }
58 58
59 /* 59 /*
60 * For versions >= 1.0.0, major,minor,status must match and library 60 * For versions >= 1.0.0, major,minor must match and library
61 * fix version must be equal to or newer than the header. 61 * fix version must be equal to or newer than the header.
62 */ 62 */
63 mask = 0xfff0000fL; /* major,minor,status */ 63 mask = 0xfff00000L; /* major,minor */
64 hfix = (headerver & 0x000ff000) >> 12; 64 hfix = (headerver & 0x000ff000) >> 12;
65 lfix = (libver & 0x000ff000) >> 12; 65 lfix = (libver & 0x000ff000) >> 12;
66 if ( (headerver & mask) == (libver & mask) && lfix >= hfix) 66 if ( (headerver & mask) == (libver & mask) && lfix >= hfix)
diff --git a/openbsd-compat/regress/opensslvertest.c b/openbsd-compat/regress/opensslvertest.c
index 5d019b598..58474873d 100644
--- a/openbsd-compat/regress/opensslvertest.c
+++ b/openbsd-compat/regress/opensslvertest.c
@@ -35,6 +35,7 @@ struct version_test {
35 35
36 /* built with 1.0.1b release headers */ 36 /* built with 1.0.1b release headers */
37 { 0x1000101fL, 0x1000101fL, 1},/* exact match */ 37 { 0x1000101fL, 0x1000101fL, 1},/* exact match */
38 { 0x1000101fL, 0x10001010L, 1}, /* different status: ok */
38 { 0x1000101fL, 0x1000102fL, 1}, /* newer library patch version: ok */ 39 { 0x1000101fL, 0x1000102fL, 1}, /* newer library patch version: ok */
39 { 0x1000101fL, 0x1000100fL, 1}, /* older library patch version: ok */ 40 { 0x1000101fL, 0x1000100fL, 1}, /* older library patch version: ok */
40 { 0x1000101fL, 0x1000201fL, 1}, /* newer library fix version: ok */ 41 { 0x1000101fL, 0x1000201fL, 1}, /* newer library fix version: ok */