From: Richard Levitte Date: Wed, 14 Mar 2018 16:31:20 +0000 (+0100) Subject: Stop test/shlibloadtest.c from failing in a regression test X-Git-Tag: OpenSSL_1_1_0h~25 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f778cd2d89b3dfb2438df44f42e5a9082b213a71;p=oweals%2Fopenssl.git Stop test/shlibloadtest.c from failing in a regression test When doing a regression test, it's obvious that the version test/shlibloadtest is built for will not be the same as the library version. So we change the test to check for assumed compatibility. Reviewed-by: Andy Polyakov (Merged from https://github.com/openssl/openssl/pull/5620) --- diff --git a/test/shlibloadtest.c b/test/shlibloadtest.c index 6f220ba530..6dae1118ae 100644 --- a/test/shlibloadtest.c +++ b/test/shlibloadtest.c @@ -196,7 +196,21 @@ int main(int argc, char **argv) return 1; } - if (OpenSSL_version_num() != OPENSSL_VERSION_NUMBER) { + /* + * The bits that COMPATIBILITY_MASK lets through MUST be the same in + * the library and in the application. + * The bits that are masked away MUST be a larger or equal number in + * the library compared to the application. + */ +# define COMPATIBILITY_MASK 0xfff00000L + if ((OpenSSL_version_num() & COMPATIBILITY_MASK) + != (OPENSSL_VERSION_NUMBER & COMPATIBILITY_MASK)) { + printf("Unexpected library version loaded\n"); + return 1; + } + + if ((OpenSSL_version_num() & ~COMPATIBILITY_MASK) + < (OPENSSL_VERSION_NUMBER & ~COMPATIBILITY_MASK)) { printf("Unexpected library version loaded\n"); return 1; }