# bug 940708 --- postfix-3.9.0/src/tls/tls_misc.c 2023-08-07 15:42:24.000000000 +0200 +++ postfix-3.10_pre20240612/work/postfix-3.10-20240612/src/tls/tls_misc.c 2024-06-12 17:59:54.000000000 +0200 @@ -1433,20 +1433,29 @@ { TLS_VINFO hdr_info; TLS_VINFO lib_info; + int warn_compat = 0; tls_version_split(OPENSSL_VERSION_NUMBER, &hdr_info); tls_version_split(OpenSSL_version_num(), &lib_info); /* * Warn if run-time library is different from compile-time library, - * allowing later run-time "micro" versions starting with 1.1.0. + * allowing later run-time "micro" versions starting with 1.1.0, and + * later minor numbers starting with 3.0.0. */ - if (lib_info.major != hdr_info.major - || lib_info.minor != hdr_info.minor - || (lib_info.micro != hdr_info.micro - && (lib_info.micro < hdr_info.micro - || hdr_info.major == 0 - || (hdr_info.major == 1 && hdr_info.minor == 0)))) + if (hdr_info.major >= 3) { + warn_compat = lib_info.major != hdr_info.major + || lib_info.minor < hdr_info.minor; + } else if (hdr_info.major == 1 && hdr_info.minor != 0) { + warn_compat = lib_info.major != hdr_info.major + || lib_info.minor != hdr_info.minor + || lib_info.micro < hdr_info.micro; + } else { + warn_compat = lib_info.major != hdr_info.major + || lib_info.minor != hdr_info.minor + || lib_info.micro != hdr_info.micro; + } + if (warn_compat) msg_warn("run-time library vs. compile-time header version mismatch: " "OpenSSL %d.%d.%d may not be compatible with OpenSSL %d.%d.%d", lib_info.major, lib_info.minor, lib_info.micro,