From: Christian Hesse <mail@eworm.de> When doing bitwise AND leading zeros do not matter, trailing ones do. Signed-off-by: Christian Hesse <mail@eworm.de> --- src/main/version.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/version.c b/src/main/version.c index 8b56ffa..9d317e2 100644 --- a/src/main/version.c +++ b/src/main/version.c @@ -56,7 +56,7 @@ int ssl_check_consistency(void) /* * Status mismatch always triggers error. */ - if ((ssl_linked & 0x00000000f) != (ssl_built & 0x00000000f)) { + if ((ssl_linked & 0x0000000f) != (ssl_built & 0x0000000f)) { mismatch: ERROR("libssl version mismatch. built: %lx linked: %lx", (unsigned long) ssl_built, @@ -70,14 +70,14 @@ int ssl_check_consistency(void) * 1.0.0 and only allow moving backwards within a patch * series. */ - if (ssl_built & 0xff) { - if ((ssl_built & 0xffff) != (ssl_linked & 0xffff) || - (ssl_built & 0x0000ff) > (ssl_linked & 0x0000ff)) goto mismatch; + if (ssl_built & 0xf0000000 >= 0x10000000) { + if ((ssl_built & 0xfffff000) != (ssl_linked & 0xfffff000) || + (ssl_built & 0x00000ff0) > (ssl_linked & 0x00000ff0)) goto mismatch; /* * Before 1.0.0 we require the same major minor and fix version * and ignore the patch number. */ - } else if ((ssl_built & 0xffffff) != (ssl_linked & 0xffffff)) goto mismatch; + } else if ((ssl_built & 0xfffff000) != (ssl_linked & 0xfffff000)) goto mismatch; return 0; } -- 2.1.2